%##########*******++++++++++::::........--------------------...........::::::::::::::::::::::::::+++++**+**++++++++********################*******######################################################%%#%%#%##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#%#######%%%%%%%%
%%%%#######*#**+*+*+*+*++++::::.......-.-----------------.--........:...:.:::::::+::++:::+:::::::++++++*+**+++++++++*+*#*#**######*###*#***#***##*#**########**###################################%%##%#%%##%##%####%###%#%%%%%%%%%%%%@%%%#%%%%%@%@%%%%%%%#%%%%%%%%%%%%%%%%%@%%%@#@%@%%%%%#%####%###%%#%#%%%
%%#######*#****++**+++++++:+:::......---------------------.-..........:..::::::::::+:::::+::::+:::+++*+***++*:*+*+++++**#*#***##*###*######**#*#**#*#*#*##***%#####**#*#*###*#*#%#####*%%*%######%##%%#%##%@#%#%%%#%%%##%%#%%#@%#@#%%#%##%%%%#%%%%#%%%@%#%@@%#%#@@@%%@%%@%%%@%@#%@%%%%#@#%#%%#%#*%#%#%%%%%%%
%%#%#*#######+****+++++*+++:+:::........----------------.-..............:.::::.:::::+::+:+:::::+:++++**+*++++++++++++++*#*+###*########*****#*#*****##*#**#*****#**##*###*###########################%###%%#%#%##%%%%%%%#@#@##%%%#@%%%%%%%#%%@%%%%#%@%%%%%%%#@%@#%%%%%%%@#@%%%%@%%%@%%%%%%%#####%##%%%##@%%%
%######*#***#****+***+++++:+::::........---------------..-...............:.:::::::::::+::+:::::+:::+++**+**+++++:++++++****#*#############*##****#*###***#********#***#*##*##*%##%#%#####%#######%####%%%##%#%#%%#%#%#%##%%%#%#%@%#%%%%%%%%%%#%%%%%@%%%@#%#@%%%%#%@%%%%%@%%%%%%@%%%@%%#%##%%#######%#%#%%%@%
#%##%####%*****+***+++++++:+:::::.......-.---------------..............::..:::::::::::::::::::::+++++*+*++*+*:+++:++++*+****#*###**###*##*#*****#*#*****************#*#**#############%####%###%###%%#%##@##%%###%#%#%%#%#%%%%@%%#%%%#%%%#@%#@@%@#@#%#%%@%%%%%##@%%%%@%#%%%%%%%%%%#%%%%@#%%####*%*%##@%%#%%%
%#######*********+**+++++++::::::......-.---------------.-.............:..::::::::::::+::+::::+::++++*++**+:*+++*+++++*******########*#####***#*##*##+*********+********#*##############%####%#%%%###%#%%##%####%%#%%%%%%%%%%%#%#%#%%%%%%@%#%%#%@%%%%%%%%%#%%%@##%%@%%%@%@%%%%%%%%%%@%%#%%##%#######%%#%%%%%
%#%#%%#*###****+**++++++++++::::..........-------------.................:.:.:::::::+:::+:+:::+:++:++++***++*+:++:+++*+********#######*#%*###*##*****+****+++++**+***+****#######%####%#######%#####%####%%#%%%#%%##%%#@##%%#%#@%%%#@%%%#%#%%%%@#@%@#%@#@%#%%%%%%%%%%@#%%%#%@@%%%%%%@%%#%%#%%*#######@#%%#@%%
%######*####*****+*+++*++++::+:::........--.-------------..........:...:::::::::::+:++::+::+:::::++++*+*++++++:+++++++**+****##*############*###********++++++++*++***+**##########%#*#%######%##%#%%#%%##%#%%#%######%%%%#%@%%%%%%%#%%%@%%%%#@%@%#@@%%@%%@%#%##@%%%#@%#%@%%%@%@%%#%%%%######%####*#####%#%%
%##%######**#******+++++++++:+::::.........------------..............:..::::::::::::++++++++:++::+++*++**+++++++:++++*++****######*##*#*########**#***+*++++++++++++*******##########%####%#####%*%######%##%##%%%#%%@##%#@#%%%%#%%%%#%#%%%%#%%%%@%%%%%%%#%#%##@%#@%%%@%%@%@%%%%%@%%%####*###*#######%%##@%%
%%%##*##%*#*****++**+*++++++::::::::......-------------................:::::::::++:++:++:++:+.+:::++++**+*+++++:++++++++****##**############*#####++**++++++++:+++++++****%##################%#####%#%%%#%%#%##%%###%#@#%###@%#%@%#%#%%%%%%%%%%%%%#@%%#%%####%##%#%%%%%%#%@#@%%%%@#%%%%##%**#*########%%%##%
%%##*%##**%******++*++++++::::::::.:.......--.----------.............:.::::::::::++++++++::::+::+++++******+++++++++*+****###*#######*#####*##*#****+++:++:+:+++++++++******##########*%#*%*##%###%####%##%%#%##%#@#%%#%%%%%#%%#%%%%%%%%#%%%%@#%%%%%@%%%%##%%%###%%%@#%%%@%%@%%@%@@%%%%#%####*#####%%#%###%%
%%#####*###*#**++**+++++++::+::::::::......---.------.--...............:::::::+:+++++++:++++:::++::++++*+**++*++*+*+*+*******##*##%###*#######*****+++++++:++:::++:++++***######################%##%##%##%%%%##%###%#@%@*%##%%%%%#%%###%%%%%%@%%@%@%@%%%%######%%%#%#%%%%%%%%%%%%#%%%%########*#*###%###%%##
#%%#####*#******+*+*++++::+:::::::.:.:........---------..-...............::::++:+++++++:++::::::+++++*****#+*++++*+*****###*#*#***#*###*#*###*****+++*:++++:++++:++++++****##*########*##%%####%######%##%##%#%####@@#%#@###%%#%%#@#%%#%%#%@%%%%%%@%%%%%%%%########%%%%#%@%#%%@%%@%%%%%###*##**##*###%#%%#%#
##########*******+*+:++:+++:::::::::.:.......--------------.............:::::+:+++++++++::::::::+++++*+*+****+***+*********#*#*#**%*########**#**++*++++:+::::::+++:+++++**#####*###################%#%##%#%##%%%%%#%%%%%%%@%#%%#%#%#%%%#%%%%%%%%@#%%%%%%#########%#%##@%%%%@%%%%#%%%%%%#######*######%#####
#%####*####***++*++++*++:::::::::::::.......--------------..--..........:.::+:+:+++++++:+++:+::++:*++***#**#*#*********#***###**#***#*##*####****+*++++:::++++:+:::++++*+***####%######%######*#####*#####%%%%%###%@%%#%%%#%#%%####%%%%%#%%@%#%@#%%@%%@#%#####*####%##%#%%%%%%%%@@@%@%#%#%#**####*####*%%#%#
%#%####*#******+++*++++::::::::::::::.......---------------............::::+::::+++++*::+:::::::+:+++*******#*#****#**#*#*#***##*############****++++:+:+:::+::+:++:+++++****#####*#*#########%#####%##%%#%###%%#%%%#%%%#%%%%%#%%%#%####%%%%%@%%%%%%%%%%###%%#####%###%#%%#%%#%%%%%%%#%%#%######*%#####*##*#
%%%####*###*****+++++:::::::::::::::::......-.----------.----.-.........:::::::+:+++++++:+::+::::+++****+##*******##*#**##**#*###**##*####*#****+*++++:::::+::::++:+++*+****#*#######%###*####**#%##%##%%##%%##%#%%#%%%%%%#%##%#%#%#%##%%%%%@%%%%%%%%@%%#%%#####%#%####%####%%%#%%%%#%%#%%#########%#%##***#
%#*##*##*#*****++:+:+::+::::::::::::::....-..----------.---..--.......:::.::.+::++:++:+:+:::+:::++:*****#********#**#**#**####**####*####*#*#**+*+++:+++::+::+:+:+::+++++***#*#%*#######*##############%##%%%%#%%%%@#%%#%%##%%%#%%%#%%#%#%#%%@@#@%%@%%%#%#%%####%##%#%%##%###%%#@%%%%@%%%###%###%%*%*#*####*
%%#%######******++::+::::::::::::::.:.........---.---.--------........:.:.::+::+++++++::::::::::+++*++*******#***#***###**%***#*#*#**#####*#*#*+*+++++:::::::::++:+++++++*****############*##*#########%####%%%#%#%#%%##%%%##%#%%%%%%#%%%%%@%%%%@%%%%#%#%@#%#%%#%%#%###%########%%%%%#%%%%%##%##*###%##**#**
%%#%#%**#*#**+++:+::+::+::::::::::::::.....--..---.------------.........:::::::+++++:++::+:::::::+++++**#+******#******###*##*###**#######*##***+*+++++++:::+::+::+++++++****#######*#*#*#**##**###########%##%%###%#%#%%#%%##@###%%%%%%%#@#%%%%@%%%%@%%%%%%###%%%%%%#*@#######%%%%%%@#%%@########*%####****
%######**##**+++::::::+::::::::::::::.......--.-..-.--.-------.........:::::+:++:++:++:++:::::::++++*#*+******#**#*#**##***#*##*########*###****+*++:++:::::+++:+:+++++**#**##*######*##*##*#*#####*##*%%#%#%%#%#%%##%%%@###@#%#%####@%%@%@%@%%%#%%%%@%%%%%%%%%%%%#%%###*##*%*#%##%%@%@#%%%###%##%####*#*#**
%%%#####******+++::::::::::::::::::.::.......--.--...----------.......:::::::+:++++:++:+:::::+++++++*****+#**********#*#*#*#**#**##**###*#*#*#***+++++:+:+++:+:::++++++++*####*#####**#**#**##***#######%%%%#%#%%#%%%#%##%%%%%#%@%%%%##%%%%%%%#%%%%%%#%@#%%%%#@#%%%%%%#%##*#%####%%%%%%%%#%#%%###%#*#*******
#%%######***+*+::+:::::::::::::::::.:.......------..---.---.---.-.....:::::++:+:*++++::+::::::+*++**+*#***+*****#**#**#*##***#*#***#%*#*####*+*#***++++++:+:++:++:++:+*+******####*#*#**##**#**###*%**%%%###%#%##%@*%%%#%%@%#%%%#%%%#%%%#@#%%%%%@%#%%%%%@%%%%@%%%@%%%%###%#%#%##%%%%%%%%%%%%###%#*#####*##**
##########***++++:::::::::::::::::::::......-------.----------.-.......:::::::++:+::+++:::::+::+++*********#****#*#*#**##*##*#**##*#**####*##******++++++++++:+++++++++*****##%#####*##**##**####*#*%#####%#%%#%#%##%%#%#@%%%%%#%%%%%%%%%%%%%%%#%%@%%@%@#%@%%@%@%%#%%%%%######%#%#%%%%%%%%#%%###########****
%%#%#####***++++:::::::::::::::+.:::........----------.--------.........::::::::+:++++:::+:::++:++****+********#**#**#**#*#*###*#*#*#*####%**##****++++++++++:+++++++++**#########*##*##**#****##*#%######%#%#%%###%%%%%#%%%#%%%@%%%%#%%%%%%%%%@%%#@%%%%%%%%%%%%%%%%%%#%#######%%%%%%%@%@#@#%#%##%###*#*****
%%#%#*###****++:::::::::::+:+:::::::.......--.--.--.-----------........:.:.:+::+++++:::++::++++++**+********##**#***#*#*#*##**##*####*###**##*#******++++++++++++++++****#*##**#*#####*###*#####*#########%%####@%#%%##%%%#%%@%%%%#@%@%#%%%%@%%@%%@%%@%%#%%%%%%#%@@%%%%%#######%##@%%#@%%%%%%#%#######***#**
%###*###*##**++++::::::::::::::::::::......-.------..-.--.----.-.........::::::++:+:::+::++::+++*+**+***+********#**#*#***#*###*#*#*####*##*#*#*#***+++++++++++++*+*******###*##**##**#**#**#########%#####%#%%#####%@##%#%#@%%%#%##%%%%@%%%%%%%%#@%%#%##%###%%%%#%%%#%%%#%#%##%%%%%%%%%%@%##%##%###*##*****
%%########*#*++++++:+:+:::::::::::::::::....--.----.----.----.........:...::::++++:+++::+:::++++*******++****************#*##*##**##*##*##*##*#*##****+++*+*++++++*******#############**#%####*##*##%#%######@*%##%%###%%%#@%%%%%%@%%#@%%%%%@#%%@%%%%#%###%###%%%@#%%@%#%%##%#%%#%%%%%%%%%%%%###*##*%*#**#**
%##%%####*****+++++:+:+++++++++:+:::::::......---.-----------...........::::::+:++++:+:::+:++:++#+**+***********#*#**###*#**######*#####*##**#*#**********+*+*+********#*###*######*#####*####*#*##%####%%####%#%%##%%%%#%%%%%@#%#%%%%#@%%#%%%#%%%%%%%#%##%#%#%%%%%%%%%%#%###%%%%%#%@%%#%%%%#%#%#*##*##*****
%#%#######*##**+++++++++++++++:+::::::::.........-.-------..-........::..:::::++:+++:+:+:+:+++++*****************+*#*#**#***#*######*#*###******##********************##########*##################%%##%###%#%%###%%%%%%%###%%#%#%%@%%%%%%%%%%@%@%#%###########%%%%%%%%%%##%#%##%#%%%%%%#%%##%#########**+**
%%*#%##%%#********+++++++++++++:+::::::......---.-..--..--.-.-.........::.::::::++*:+:+++:+++:**+++*****+*+**********#*****#*##*#####*####***##**####****#****#***#***##*##*###**#****#*##############%##%#%####%%%%%%#%%%%%#%%#%%##%%%%#%@%%@%#%@%###%###*##%###%@%%%@%%#%#%%%@#@%%%%#%%@%%%#%*#%#*#*##****
#%#########*#**+***++++*+++++++++:+::::::......-.---.------.-.......:.:.::::::+:++++++::+++:++++++*+++**********#**#****#***##*#**#*###**##****#*###*###*###****#########*####*#*#############%###%####%#%%#%%%#%#%%##%%%#%%%%%%%%@%#%%%%@%%%#%%@#%%######*#####%%%%@%%%%%#%#%##%%#%@#@%%%%#%%%######*#*****
###%**#####*#*******++*++*++*:++:+:::::::...-...-..-..-----............:.:::::::+++++++::::+++++*+++*****+**************#*****####*###*##*******#***######*####*#######*#######**#############*###*#%#%#%###%#%%%#%%%%%%%%#%%%%@%@#@@@#%%%%%%%%%%@%##%###*#####%%##%%%@%##%%%##%%%#%%%#%%%%#%##%######*##***
###%#####*###*****+++*+*+++++++++++++::::......-..-.---...--...........::::::::++++:+++++++++:++++***+**********#*+********#**#####*#**#*************##*%#############*####**#*#####*#*##*###########%##%#%###%#%##%%#%%#%%%#%#%%#%%%#@%%%@#%%%%%#%%%###*##*######@##%##%####%##%%%%%@%%@%%%#%###%#####*****
###%#*#%##**#******+++*++++++++:++++:::::......-...-...---.-...........::::::::+++:++++++++:++:+++*++**+**+******************###*#####****+***********#*########*%#############*#*#*#####%#####*###%#%##%#%%#%##%%%#%%%%#%%%%%%%%#@#%#%%%%%%%%#%%@#%##%###*####%%%%%%#%#%###*####%%@%%%%%%%#%%#%#*######****
#%%##%%*##*****#+****#*+*+**+++++::+:::::.....-.---....--.-.........:...:::::+:+++++++++++:++:+++++*****+**************#***#*#####*%*#****+++*++****#**#######*#####*######*##**#*#####*##*########*###%%%%#%%%#%%#%###%%%%%##%#%%%#%%%%%%%%%%%%%%%%%%#%#****##%#%#%@@#@%###%##%%%%%%%%%%%%#%#%####*%###*+**
%%#%#*####%#***+**+*++*+*+*++*+++++:+:::::......-..-.-..-.-..........:::::::::+:+++++++++++++:+:+++++*+*#***********+******#####*##*****+**+++++++***#*###**########%###############*#######*###*####%##%#%##%%%###%%%%%#####%#%%%%#%#%@%%%#@%%%@%@%%%#%#########%#%%%%#%#%####%%#%%@%%#%%%%#######%##******
%#%#%%#*#*##*+****+**+*+++++++*++++:++:::.......-.--.-..................:::::::+:+++++:+++:++:+++:+*++******************#*#*#*##*###*#***+*++++++++******###########*##%#%#####################*######%##%%#%%###%%#%%#%#%#%####@#%%#%%%#%%%%%%%#%#%%####%%##%##%%%%%%@#%#######%#%%%@%%@%###%#%########*#**
#####%##*#***#*+*+**+**+++++++++++:++:::::......--...-.--.............:.::::+:::+++++++++++:+:++++++*+#******#******##***#**####*###****+*+++++:++*+**#*####*##############*%#*##%########*#*#*#####%#%%#%#%%##%%%%%##%###%##%%#%#%%%%%%%%%@%%%@%%@%%%%####%##%#%%%#@%#%%%###%#%#%%%%%@%%%#%%#######*##*##**
%#%#%##*####****+***+++**+++*+++++++::::::..........-.-.-.............:::.:::+++++++++++++:++:+++:+++****#****#***+#***#**#####*##**##**++++++++*++****#######%##%#%########################*######%##%%#%%#%%#%###%%%%%%%#%#%#%#%%%%@%%%%%%%%%%%%%%%%%%%##%##%%##@%%%%%####%%###%%#@@%@%%%%%%%#########****
#####%*%##*##******+**++**+++++++:++:+:::.........--.---.-............:.:::::+:++:*+*+++:++:::+:+++++******#*#*#**%******#**#####*#******+++++++++*****####*%#####*######%#######*####%#####*#######%%#%#%##%#%%%#%%%#%#####%#%%%%%#%##%%@%@#%%%@%@%@%%%%%%%%@#%%@%%%%%##%#*#*###@%%#%#%%%#%%#%##*#%###*##**
#%#%######*#******+++++*+++++++++++++::::.......-..--..............:::.::::::+++++++++*++::+:+:+:+++++******#******##*#*****#*#########+***+++++++++***#**########%###%#####%####%#######%##############%%%#%%##%%%##%########%#%#%#%@%%#%%%%%%%%@%@%%%%%%%%%%%%%%%%%@%%#######%%%%#%%%@%%@%%%###%#########*
%#######*#*##****+**+++*+**+++++++++:::::.......---..-..............::::::::::++:+++++++++::+::+:+++*+**#**###*#*##***#*#*#######*##*#****+++++++++******######%#######%%*#########%############%######%#%%%%%%%%%##%%#######%#%%#%%%%%%%%%%%%%%#%%%%%%%#%%%#@%%%%%%@#%########*%#%%%@%%%%%%%%###*%*##%#****
%##%#%####*##*****++***+*+++*+::+++:++:::......--.--..-............:::::::::+:+++++++++++++::+:+:+++**+***#**#**##*##*###%+#####*#*##***+****+++++*+*###*%*####*#%#####%#%###%*#%%#*###%*######%%%%#%#%%#%%###%#%##%#####*#*%##%#%%%#%%%#%#%%@#@%%@%@#%%@%%@@%%%%%%%%%%#%###%####%%%#@%@%%%%%%#%#%*#%*##*#**
#%##%*#####**********+++*+*++++*++++++:::..:.........-...............:.:.::::::+++++*+++++:+:::++:+*+*******#*#**###**###**##*#*######********+********############################%##############%%##%##%%#%%%#%%########*#*###%%%%%%%#@%%%@#%%%%@%%%%%%%%%%%%%%%%%%%%####**####%%#%%%%%%%%%%%%#########*#*
#%%%###*#*##****+*******+*+++*+++:++:+:::::.........-............::.:::.+.:+:+:++++++++++++:++:+:+++++*+#***##***#*#*#**#*#####*####*####****+******##*#########%###########%#%##########*#*#######%%%###%%%#%#%%##%##**##*########%%#@%%%%%%%%@%%@%%%@#@%@%%#%%%%%%%%%#%#####*##%%%#%%%%%%%#@##%###%#####**
%####%####**#*****+**+*+*+++*++++++++:::::.......-...-.............::.::::::++++++++++++:+:+::+::+++*+*#**#***#*#*#***#**######%###*###****#**********######*####%#########%*####%################%%##%%%#%%%#%%#%####******##*#@%#%%%#%%%%%%%%%%%%%%%@%%%@%%@@#%%@%%%%%####*####%%%@#%@%%%%@############***
%####*####*##*******+*++**:+++++++:++:+::::......-..-.............:.:::.::::::++++**++++++++:::+:+++************#***###*##*##****####*####**#********##*#####%#####%#%#######%###%######*#########%#%#%##%####%######**#***#**##*%#%#%%%%@%%%%%%%%%%%%%%@#%%#%%@%%%%%%%%###*######%%@%%@%%#%%##%%%#####%###*
%######%#####*******+*+**+*+*++:+++++:::::.......-...........:..::.:.:.:::+:::+++++++++++++:+::+:++++***#*****#*#****#########**##**########*##*###*#%*#%#%#%*###################%###%#########%####%#%%%#%#%#######*#********###%#%#%%%@#%%%@#%%%@%%%%@%%@%%%%%%##@%%#####**#**##%%%%%@%@%%%#@#####*%##*#**
##%#########******+*+*****++++++++:++++::::......-.................:.:::.:::+:+++*+*++++++++::+:++:*+*************#*#*#**##*####**######*#%#*#####*#%##%#########%#%##%#%#*#%##%%*######*##%####%#######%%#%#%%####******+***#**###@%%%%%%%%%%%%%%@#%@%%%%%%%@%@%%%%%%%###+#*#####%#%@%%%%%%@%##%#####%####*
%####*####*##****+**+***++*++++++++++::::::........................:.::::::::+:+:*++++*+++++:::+:++++******************##*#############*##############*#####%#*#############%%####%####**############%#%###%#%####%*************###%%%%%%%%%@%%%%%%%@%%%%%@%%@%@%%%%%%#######*#*##%%%%%%%#@%%#%##%####*###*#
#%#%########******+***++***++++++++++++::::.....................:.:.::.:::::+:++:++*+++++:+:+++:+++++++#***+#+***#*#***##**#%#*####*#*######%%###%##%%#######*###*###%###%%#%###%#####*##*#*##%##%#%%####%%%##%%##*#*******+*#*###%%%%@#%%%%%#%%@%%%%%%%%%%%%@%%%%@%#@###*#**#####%%##%%%#%%%%%##%##%##%%*#*
##%%########*#***********+++*++++++:+:::::::.....................:..::::::::+:+:++++++*+++++:::+++++**************#*#*#########*##*############%############*#######%##%##########%############*######%%%%%#%%##%##***#****+***####%%##%@#%##@%%%%%#@%%@%%%%%%%%%@%%#%#######*#*#%##@%%@%%%%%%%####%######**
%#######%%+##**+***++*+*+*+++++*+:+++:+::::..........................:.::::+:+:+*+++**++++++:+:+::+++*****+*+*+*****#*#*####**#*#*###*#######*#*#######**##*####*%####%####%#%%%#########***####################****#***+****+*####%%%@#%@#%@%%%%%%%%@%@%%%@@#%@%%#%%%###***#*#*##%%#%#%%%%%%%#%%%*####%#*##
%#####%###*###*#**************++++++++:+::::................:.......::.:.::+::++:*++++*++++:++:++++*+***************#*#*###**#*#####*#####*####%#######%##%##########%##%##%%##%%########%***#############%#%#%##%##*****++***######%#%%@##%#%%%@%%%%%@@#@%@%@%%%@%%%#%##*#***######@#@%@%%%#%%######%######
%####%#######*********+***+*++++++:++++::::......................::::::::::+:++++*:*+*++++++:+++++++****+**+*+*********#*#*#*#*########*##*#######%#########################%####%#######***##*########%%##%########******++**#####%#%#%%%%%%%%@%%@%%#@%%@%%%@%%%%%%%#######**%*##%%%%%%%%@%#%%###%#%#######
##%#####**#*###*****+*+***+++++*++++++::::::.........-............::::.::::++++++++:++*+*++++::+++++++****+**+*+****#*#***%*#*#*#*###*#####**%########%*####%*#%#*##%###%%####%##%%########***###*#*#%############*********+*#**######%#%#%%%%%%%%%%%@#@%%%%%%%%@%%%#####*#*#**###%%##@%%%%%%%%%%####*#%####
###%##########*********+***+++*++++++::+::::...................::::::::::::::++++++*+*++++:++++::++*+*******+*******##**#**####*####*#########*%####%#########%######%#####%################*#*##**%###%########**#*****+*******##%##%%#%#%%%#%#%%%%%%%@%%%%%%%#%@%%%#####***######%%%%%%%%%%%%#%#####%*%###
%######%##*##*#******+*****+*+++++++:++::::.:................:.:::::::::::+::+++++++**+*:++++:+++++*+**************#***#**###*#***########*##%#%#######%######%###########%%*%######%###*#####*##*##**###%######***#****+++******####%#####%%%%%%%@%%%@%%%%%%%%%#%##%%#####**######%#%%%@%%%#%#%%####%#%#%##
%%##########*#****+***++**++*+++++++++:::::::................::.::::::::::::+++++++*++++*+:++::+:+++******#+*******##*#*##***#*##*##*#*###%####*##########%%%#####%###%%#######%##%##%#%#######%#########*##*##**#**#*++**++***#*###%##%%%%%%%#%%%#%#@%@%%@%%%%%@%%%##%##****#**#%%%#%%%%@#%@#%#%%#%#%###*##
%%#%%##########**************++*++++++:+::::...............:.:.:::::::::::::+++++++++*++++++:+:+:+++****#**********#*#**###*#***#**###*####################%###%%###%####%####################**########*####*##***#******+******####%###%%%%%@%%%%%%@%%%@%%%@%@%@%#%####****##*#####%@%%%@%%%%%%#######%###
%###%####%#*#*#**+*+******+*+++++*++:*+::+::::...............:::::::::::::+:+++++**+**++*++::+:+++*+**********#****##*#*####*#*#*#######*######%######%######%#####%####%#%%###%#%###%#%@%####%%#####*###%****#**##*****+++****#**##**%###%%%%%%%#@%%%%%%%#%%#%%%%%%%###**##*#*#*#*%#%%@%%#%%####%#%##%#%%##
%%#%###########********+**+*+**+++++++:::+.:...:.........:.:::::::::::::::::++++*++++++++++:::+::+++******+***#***##*#####*##*#*#*#######*#%#####%%####%#############%%%############%%#######%###%######***###***###**#*#**+*****#####%##%###@%%#%%%%%@%%%%%#%%#%#%##%#####*****###%%%%%%%%%#%#%%###########
#%#####%####**#*************+*+++*+++:++::::::.............:::::::::::::+::+++++*+++++*+++++::++:++++****#*##*#######*##*###***#*#*#############%############%%#%#####%##%####%######*####%###############*#*#*##***#***+*****#*######%#%%#%%#%#%%%%%#%%%%#%%%%%%%%%####****#***###%%%%%%%%%#%#%#%####%#%###
#%##%#%#######***#**+****+++**:+++++++::+::::.:...:.....:.:.:::::::::::::::++++:++**+*+*+++*+::+++++*+****#**#**####*####**####*#*##%*###############%##%######%#%%%###%%##%####%###%#######%%#%###%##%####*###*####*#**********#*#%%#%######%%%%%%%%#%%#%%%#%%#%%#%###**##*#*##*##%##%#%%%%%%%%##%%##%##%##
%%%#%#########**#*********+**+++++++++++:::::.:............::.::::::::::::+:++++++++*:***+++++:++++++***#*##*#*###*##**######*#*#############%####%###%####%######%#%#######%#%*#########%*#####%%#########***##*##**#****#***##*######%##%#%#######%%%%#%%%##%##%#####*#***##**#*###%%%%%%%%%%###%*#%###%##
%%%#######*###******++**+***++*+++++++:::+:::::..:........:::::::::::::::::::+++:*+++**++++::::+:++++**#*#**#**#*####*#*##*##*#*###########%####%#%##%###%#######%###%####%%####%##%#######%#####%#%#%%%*####*##%#######***#*#**#####%##########%########%%##%##########*##***#*#####%%@%%%%%%#%%*%#########
%#%#######**#*************+*+****++++++::::::..:.:..:..::.:::::::::::::::::++:++++**+++**+++++++++++**********#*##*###*####*###%*#####################%#####%##%####%##%#########*#######%#%###%###%####%##%#%##########**##*###*##%%########*##*####################*##*****##***###%#%%%%#%%%#%%#####%####
%%%############****+*******+*++*++++*+++::::::::...:.:.::::::::::::+::::::::+:+++++***+*++++++++++++*****##***#*##*###**##########*####%########%###*#####%######%%###%%##%#*##*##*########%#%#%%#####%#%%####%########*###**#####*#####*##*#*###*#*#%###############**###********####%#%%#%%%%%%###%####%#%
%%%%##%#######**********++*+**++*:*++::++:::.....::::.::.:::::::::::+::::::::++++**+***+*+++:+++++++****#***###**###*###*#*#*#####%#*%########%##*#####%%###%%##%###%%##%%%#######*####%#%##%%###%%####%#%%#%%#%####%##%###*###*%######*#*###%*###*#*#*#**###**#*###**##********#**###%%%%%%#%%%##%%*#%%%##%
#######%#######************+++*++++++++:+::::::.:..::.::::.:::::::::::::::++++++++++++**++++++++++++*****#**#####*#*#################%#############%#%####%#############%###*###########%##%%#####%#%###%##%%#%#%##%%###%######%###########*#******#***#******##****##***#**#***##*#*##%%%%%%%%##%%%########
%%#%#%#######**#***+**********++*++*+++++::::::.:::.::::::::::::::::::::::::++++++****++*+*+++:++++*+**#**#*#*###*####*#*###**#######%###%#####*#%####%#%###%#%#####%############*####%######%#####%##%%#%#%%#%%#%###%##%%##############*#***###**#**##*#***##**#*******#**********#####%####%%##%#######%##
%#%########*#*##*************#++++++*++:::::::....:.::.::::::::::::::::::::+::*++++***++*+++++:+++++****###*#*#*#**#####*###########%########%#%#####%#####%##%####%####%########*#*##%#*###%###%%###%%#%###%%#%%#%#%%%%##%@%#%%*%##%#######*****#*#******#*#**#**#************#**######%###@#%#%#####%##%%%
%#%#%#######*##*****+*****+**++**+*+++++++:::::::::.:::::.:::::::::::::::++:++:++++*++**+*+++++++++++*******##*#*###*##*###*#*#########################%#%#%#####%##%###%#########*##*#######%###%##########%%###%%%#%#%%%#%#%%#%##%#%#**##*#********#********************#********##*#*#%##%%##############
%%%##########*###******#+****+*+*+++++++:+::.:..:.:::::.:::::::::::::::::+:++:++++++**++*+++++:++++++******#*####*###*#########################%##%###%##%%#%##%%###%####%#########*#####*####%##%###%#%#%####%%%#%%%#%%#%%#%%%#%#####%##*###*#****##**#*******#*******##**#*#*#******#####%#%%##%#%%#%%#@##
#%%%#######%####*#*+*******++**++*++*+++:::::::.::.:::::.:.:.:::::::::+:::+:++++++++*+**+++++++++++*++***#***#####**##*####*######%##################%##%####%%######%###%######**##**##############%%###%##%###%##@%%#%#%##%%%#%%%%%%#%#####*##*##***#**#*********#***************#*##**###*#####%#####%###
%%#%##%#######********+*******++**+*++:++:::::::.::.:::..::.::.::.:::::::::+:++*+*++*+*+++++++++:++++****#**##***######*#*#######*########%###%####%###%#%##%#%%%######%%####*################%#*%##%#%#%%#%#%%%%%%%%%%#@%%%%#%#%%#%##%##%##########******#*#****#+**+*******#***#***#*##**#######%###%##%%%
%##@####%#%##*#*****#******++*+***++*+++:+::::.::.:::.:.::.:..:.::::::::::::+:++++*++**++*+++++++++*+*+*****##*##*##*#*#*###############%#########%####%##%######%#%##%#%######*###########*####%%%%####%#%#%##%%%#%#%%@%%#%%#%%%%#%%%%%##%#%######*#*#*##+#+#******#*##***##**********#*#*##*%######%%###%#
%######%#%*%###***#*+******+**+**+++++++++:::::.:::.:::::...::..:.:::::::+:+++++++*+****+++:*+++++++******##**#**######*###############%#########%#%####%%#%###%#######%#%######**##****##*#%#########%#%###%##%##%%%%%#%#%%%%#%#%#%%%%%%%%%#%########******#**#*********#****#**#******#*#**######*###%%%#%
%%%##%#########**#+*************++++*+++++:+::::::..:...:.::..:.:::::::+::::++++*+*+***+#++++++++++*+*#*****#*###***####**###################%##%%##%######%###%#%%##%#%##*#####********#*#**#######%#%#%##%#%%%#%%%%%%#%%#%%#%%%%#%##%%#%%%%#%##########*#*#*#***#*#*******#**#****#**#**##*###*%##%##%%#%%
%%%######%###**#**#*********+*++***+*++++:::::::.:::.:..:::..:::::::::::::++:+++++*+**+*+*+++++++++++***#**#*#*#******###**#*##################%#######%##%%##%#%#%%##%%####*************#########%#%######%#%%#%%#%%#%%%#%%%%*%@##%%%%##%%%%%%#%#########*#*#**##**#****#*****#*#**#***#*****#*######%#%#%%
%%%%##%%%#####*#*********+**#+**++*++*+++:+:::::.:..::::.::::.:.:::::::::::+++++++****+*++++++++++++*+**#********#*###*####***####################%#%##%###%####%#%#%#######************#**###########%%#%%%##%%%%%#%#%%%%#@#%@%#%%%%#%%%%%%%%%%%%%##%#######*##****#********#**#***#*#**#*##******#####%%#%
%%#%%####%###*##*#+#+******+***:*++++++*++:::::::::..::.:..:.:.:.::::::::::::+++**+*+*+**:++++*++:+**+****************#*#****#*######%#######*#%###%####%#####%###%%#####%*##**#+*++*****#**########%#%%##%#%####*#%%#%%@%%#%@%%#%%#%%%#@*%%%%%#%%%%#%#%%##*#%****##****##*##*********#*******#****###*##%#%
%%#%#%##%###**##********+*********+**+*+++::+:::::::::.::..:::::::::::+:::::+++++*+**+**+++++++++++++************+***#*****##**###################%##%##%#%%%#%###%##%%%####*****+*+****#*#########%########%#%##%%%%%#@#%%#%%%%@%%%%#%%#%%%%%%%%%%%%%%%%#%#########***#***********#*#**#**###******######%%
%%#%%*########*#*****+***********++**++++:+::::::.:::::.::::::::::::::::+::++++++*+**+++++++++++++++****************+****+#******###%##################%%####%###%###%%####****+****+*****#######%##%####%#%%%#%%%%#%%##%%%#%@%%%%%%%%%#@@%@#%%%%%%%@%%%%%%#%%#########********#*#**#*#*#*****#*****####%%%%
#%%#%%#%######**##*********++*****++**++++++::::::.:::.::.:::::::::::::++:++++++++*+++***++++*++++*++****#++***********+*+********#######%*%##%####%########%##%%#%%%%#%%####****+*+#*****#**#########%####%#%#%##%%%#%%#%#%%%###%##%%##@#%%%%%%%%@%%%%%%%%%%##%##*##**#***#***********#**#*##*##****#####%%
%%%##%%%#%####*#***************++***+++++:+::::::::::::::::::::::::::+:::+:::++++++++*++*+*+++++++++********+**++++++++***++*+****#*#*###################%#%%###%###%####%###*#*****+****############%####%%%#%#%%#%%%%##%%#%#%%%%%%#%%%#%@#@%%%%%%%%%%%%%@%%%%@#%#####**#**#*#**#****#**######*#*##*#*#*%%%
%%%%#%##%######*#********#*******+#**+*++++:::::::::::::::::.:::::::::+::++++:*++++*+***+*+++:++++++****#*+**++*+++*+++++++++**#*####%###*%######%##%##%##%#%%#%#%#%#%%######*#*******#*##########%%#%###%%#%%#%%%%%%#%%#%#%%%%#%%%%%%%%%%%%%%@#%@%%%%%@%%%%%%%#%%#######*#*****#***#**##*####%%%##*###%%##%
%%#%%%#####%#**#****+*************+***++++++:::::::::::.::.::::::::::::+:::+++++++****+**+++++++:++**+****#+**+++++++*+++++++*+**+#*######*##*########%*##%##%%##%%%%##%%%####*#******#*#####%#%%###%#%##%#####%%%%%%%#%%%%%%%@%%%%%%%%#@%%%@%%%@%%%%%%%@%#@#%%@%%#%###****###*#*####**#########%**####%#%%%
%%#%###%########***+********+*********++++:+::::::::.:::::::.:::::::+::::+::++++++*+*+**+*+*++++++++*+*******+*+++++*+:++++++**+***###*###*#########%#%#%#%####%#%%#%##%#%%#####***#**#############%%#%##%##%###%%%%%@%#%%%%%##%%%%%%%%%%%@%%@%%@%%%%%%%%%%%%%%%%%%####**###***#***###########%###%*#######%
%%#%##%#######*#******************+*+***+++:+:::::::::.:.::::::::::+::::+::++++*+*++***+*+++++++++++*+*#********+++++:++:::+*::*****##**###**##*###%#%######%%#%%#%%##%####%###*##*##**######%*####%%%#%#%#@#%#@#%#%%#%%%%%%%%%%%%%%@#%%%%@%%#@%%@#@%#@#%@%%%%%%@%%%#####*##******##*###*##%%#%##%####%%##%%
%%%############*****+********#*******+*++++:+::::::.:::::.::::::::::::::::::+++++++****+**++++++:++++**********++++++++:++:::++**+**##*#****###*#*#*#####%#%%%#%%###%%##%##########*#**#####%#%#%%#####%##%###%#%%#%%%#%%#%%%%%%%%%%##%%%%#%%@@@%%@%@%%%@#%@%@%%%%@#%%###*#**##*##****####%%%%#%###%##%#%%%%
%####@%###%#####******************+***+*+++:+::::::.::::.::::::::::::::::+:+:++++++**++**++++++++++++*+*#********++++++::::++++++****###*******###*#########%#%#%%#%%%%###%###%######%###%#######%#%#%#%#%%##%#%%%%##%%%%%@%%@%%%%%@@%#%@%@%%@%%%%@%%%%%%%#%%%@#@%%%#%####*#***#***#*###%##%%%%#%##%#%#%#%#%
%#%%%##%%######*****#********#*+*****++++++:::::.::.:.:.:::.::::+:::::::+:+:++++*++**+****+++++++++*+***##*****+**+++++::++:+++++****#****+#***+*##*#*###%###%%%%#%####%#%#######%#########%######%#%###%##%#%%%%%%%%%%%%%%@%@%%%%%%%@%%%%%%@%@%%%%%%%%@%%%%%%%@%%%%%##%##*#****#*****###%%%%%%%#%%#%%%#%#%%
%#%%%%#%%#####***+#*******+***#+***+*+++++:::+::::::.::::::::::::::::::::+:+++++*++*+*++++**+++++++++*****###***+*++++++:+:+:+++******#***#******#**#*####%%%##%%%#%%##%###%%#%#%%%#####%###%#%###%%#%#%###%##%#%%#%%%%@%%##%@%%#%@@%%%%%%@%%%%%@%%%@@%@%%@@%%%#@@%%%%######*###*#*##*####%%%%#%%%%%%%%#%%%%
%%#%###%%#*#***+#*+******#****+*******++++++::::::::::::::::::::::::::::+:+::+*++**+++*+**++++*++++++****#******+**+:+++:::++++***+*********+*****#**##*#####%####%##%%##%%###%#%##%##%%###%%####%##%#%#%#%#%%#%%%%%#%%@%@@@@%%%@%#%%@%@%@%%@%@%@%%@%%@%@%#%%%@%@%%%%%%#%**#***##**#*###%%%%%%%@%%#%%%#%%##%
%%%%%%%#%###%*#**#**+************+******+++:::::::.:::::::::::::::::::::::::++:*+++++*+*++++++++++++******#*#*******+++++++++++***#******+**+*******#*#####%%#%#%###%%###%##%#%#%%%%#%%#%#%###%#%%%%###%###%%#%#%%%%%%%%%%%%%%%%%@%%%%%%%%%%@%%@%@%%%@%@%@@%%@@%%%%%%%%%####*##****######%%%%%%%#%%%%#%%%#%%
%%#%###########******+*+*****+++**+*****++:++:::::.:::::::.::::::::::+:::++:+++++*+***+***+**++++++*++****#*###****++*+++++++++*********+*******+#+***######%#%###%#%##%####%%#%##%#%%%##%%%#%%#####%%%%###%#%%%%%%%%%%%%%@%%%%%%%%%%%@%%%%%@%@@#@%@%%@%%%%%%@%%@%%%%%%%#######*#**#####%#%%%%%%%%%%#%%%%%%%
%%%%%#%#%######*******#********#*****+*++++::+::::::::::::::::::::::::::::+++:++++*+*+*+++++++++:+*++*#*#**###******++++++++++*********+#***++*#+******####%##%%%#%%##%%#%%###%%%%###%%##%#%###%%%####%%#%%#%%%%#%%#%%@%%%#%%%%%%%%%%#@%%@#@%@#%@%@%@%@%@%%%%%%%%@%%%%%###***##*#*######%%%%%%#%%%%#%%#%%##%
%%%#%##########******#*********+****+*++*+++:::::::::::::::::::::::::::::::+++*++***+*+*++**++++*+++*+****#***##******+++++++*+****##**************#*#####%#%%#%####%%%%#%##%%###%#%##%%%#%#%%%%##%%#%##%%%##%#%%%#%%@%%@#@%%%%%%%%%@#%%%%%%%%@%%%%@%@%%@%%%%%%%%@@%%@%#%####**#**###*##%%%%#%@%%%#%%%%%%%@%
%#%#%##%#########****************+#**+*:++:+++:::::::::::::.:::::::::::::++:+++++*+*********+*++++*+******#*#*##******+*+++++******#***##****#*******#*#%%%#%##%%###%##%##%##%###%#%%#%%%%%%#%#%###%#%#%#%%%%%#%##%#%%%%%%@#%@%#@%%%%@@%%%%@%%@%@@@@@%@%%%@@%@%@@@%%%@@#%#####**##**##%#%%#%%@%%%%%%#%%#%%%%
%%%#%%##%%#####**#**+***#*******+*+*+***+*+:++::::::::::::::::::::+:::::::+++:+++++****+*+++:+++++++*****####*#*#******+++*******##**##*********#**##*#######%##%#%#%##%%#%%#%##%####%%#%%##%%%#%###%%#%##%#%%%%%%%%%%%%%%#@%%@%@@%%%%%%%%@%%%%%%%%%#%@@@%%%@%%@%%%@@@%%##%#####***#*##%%%%%%%%%%%%%%##%%%%%
%%%##%#%########************#*********+*++++:+++:::::::::::::::::::::::::+++++++++******+**+*+++++*+*****#**#***#***#***+***+#****#***#***####**#*########%##%%#%%###%##%#%#####%#%%%#%%%%#%%##%%%%%#%%%%#%%%%%%%%%#%%@%%%%@%%%@%%%@%%%%%@#@%%@%%@%@@%%@%@@@%@@%@%@%@%%%#%###*#*######*#%%%%%%%%%%#%%%#%%#%%
%%#@#%@##%###*##**#*********+**+*+#****+**+++:::::::::::::::::::::::::+::::++++*++++*+*+#++*+++++++*******##*#***#********++*+*****############*#########%##%%%##%#%%############%#%%%%##%#%%%%#%%#%#%%#%#@##%#%#%%@%%%%%%%%%%@#@%%%%%%%%%%@@%@%@@@@%@@%@%@%%@%%@@@%#@%%#%###**#***#####%%%%%@%%%%@%%%%#%%@%
%#%%%##%#%########+#************+****+***++++:::::::::::::::::+::::::::+:+::++*++**++******++++++++++**#*#***#**###*#****+********##################%###%##%##%%%##%##%###########%%#%####%%###%%%%%#%%#%###%%%##@##@%%%%@%%@%%%@%%%%%%%%%@%%@%@%@@%%@@%%@%@@%@@%%%@@%%%%#%####*****#*##%%%%%%%%%%%%#%%%%%%%
%%%#%#%#%%#####***#+***********#**++**++++++::+*:::::::::::::::::::::::::+::++++******+*+*+*+*++*+*+****#***#*#****#****++*+********###%#########*####%##%##%%###%%%%###%############%#%%##%%#%#%#%%##%%#%%##%#%#%%%%#%%%@@%%%%%#@@%%%%%%@%%%%%@%@@%@@@%%%%@%@%%@@%@@%%@%#%##%#####*###%%%#%@%%%%%%%%%%%%%%%
%%%%%##%##%#####*#*******#********#***+**++++++:+:::::::::::::::::::::+::++++++++*+*+**+*+**+*:+*:+******##***#**#*****#**++++*****############%###%####%##%#####%%##%####*########%##%##%#%##%%%%%##%%%%%%%%#%%%%%%%%%@%@%%%%@@@%@%%%%%@%%%%%@%@%@@@%%%@@%@%@@@%%@@%@%@%%####*#**#####%##%%%@#%%#%%%%%#%%%%
%%%#%%##%%###%#*#*****#**********+********+++++:::::::::::::::::++:+::::+++++++*+++**********++++*+++*****#****#*****#+*+++*+**+***#*###%###############%##%%##%%#%#%##############%##%%%#%%#%%%#%##%%##%##@#%%#%%%#@%%%%%%%%%%%%%%%@@%%%%%%@%@@%%%%%@%@@@@%%%%@@%@%%%%@%%%###*###*#####%#%%#@@#%%%%#%%%%%%%
%####%%#%#%#####**##+***#**+****#***+****+*+++:::+:+::+:::::::::::::+:+:++:+++++++*+****+*+++++++++++******##*#*#**#*+*++++++++****#####*#####*#####%#####%%#*#%###%*##########*##%#####%%#%#%%%#%%#%#%#%%%###%#%%%%%%%%%@%@%@%%%%@%%@%%@%%@%@#%@@%@@%@%@%%@@@%@%@%@@@@%%%%####*###**%#%#@%%%@%%@@%%%%%%%%%%
%%%%%#%##%#%#%##*##******#***************+++++:++::+::+::::::::::::::+:+:+++++++**+**+++*+*+++*++++*+**************#*#***++++++***#**#####*###%#####%#####%#####################%#%#%%#%##%##%#%%##%%%%%%%#%%%%%%%%%%%%#%%@%%%%%%%%%@#@%%%%%%@@@%@%@@#@%%@#@@%@%@@%@@%@%@%#######**###%#%%%%@%%%%%%%%%%@%%@%
%%%%%%#%%########**********#*#***#********+++++:::+::::+::::::::::::::++:+++++++++*++**+**++++++++*++****#***************++++++****#*#**##*############%######%##%####%###########%#%#%###%#%#%##%%#%%%%#%%#%%%%%%#%%%%@%%@#@@%@%%@%%%%@%%@%@%@%%%@@%@%@@%@%%%@@@%%@%%@%%%@######*#####%%#@%%%@%%%%%#%#@%%%%
%%%###%#*%%##%###**#*#*******************+++++++++::::+::::::::::+:::+::+:+:+:+++++*+*****+**++:*+++*+*###*##****#******+++++*****#####**#*###########%###%######*###*#########%#####%###%#%#%%%%%%%#%#%%%%###%%%#@%%%%@%%%@%%%%@%%%%%@%@%%@@%@%@@@@%@@%@@@@@%%%%@@%%@%%%%%####**#####%%%@%@@%%%@#%%%%@%%@%%
%%#%%%###%#######*#**#****+*#**********+**+++++::+::::::::::+:::+::+::++:+:+++++++*****+*++**+++++++******#******#*****************########*#####%#####%#########*#######%#####%%%###%###%%%%%%#%#%%%%##%%%%%%#%%%%%@%%%@%%%%%@%@%%@%%%%@%%@%%@%@%%@@%@@@@@%%%%@%@@@@%@@@%%%%###*#######%#%@%%@%%%%%%#@%@%%%
%%%%%%%%########**#***#***#*************+*+++:+:+:+::+:+::+:+::::::+:+::++++++++*+*++#***+*+++*+++++***####******###**#******+**##**##**##*###*##%##%%##%###*#*#*#########%%%#%%#%#%@##%%%##%%#%%%%%##%%%%%%%%%%%@%#%%%%%%%%%%@%@%@%@%@%@%%@%%@@%%@%%@@%@@%@%@@%@%@%%@%%@@%#######*##%#@@%%@@%%@%%%%%#%%%%%%
%%%%%%###%#######*#****#*****#*#******#*+**+++++:++:+::::+:::+::+:::+:+:+:+++++**++*++**+***++++*+++**+****###*#****##***********###*######****##*%########*#******#*#####%######%%#%#%%%#%#####%%#%###%%%#%#%#%%#%%%#%%%%%@%%%%%%%@%@%%%%@%@@@%@@%@@%%@@%@%@@@@@%@%@@%@%%%%#%#########%%%@@@@%@%%%%%%%%@%@%
%%#%%%%###%###%#**#****+**#*#************++++++:+:::::+:+:+::::+:+:::+:::+++++*++**+*+***+*+**+++*+********###*###**##**********###*##**####**##*###%###*%####**#***#*#%####%%#%%%#%%#%%#%###%######%%#%#%#%%%#%%@#@%@#%%%%@@@%%@%%%@%@%%@%@%%%@@%@@%@@@@%@%@@@@%@%@@%%@%%%%##########%%%%%@%%@%%%%%%%%%%%%%
%%%#%#%##%%##%*##*#**#*##*************+***+++:++:+:::+::::++:++::::+::*:++++++++**+*+*#****+++++*++++**####*##########*##***#**#####*###*#**#*###%#%##%#####*#*#***#**####%#%%%###%%####%#%%#%###%###%##%#%#%%#@##%%%%@%@%%%@#@%%%%%@@%@@%@%@%@%%@%@@@%%%@%%@%%%@%@%@@@%%%@#############%%@@@@%%%%%%%%%%%@%%
%%#%#%#%#%%######*******#*#**#*#******#*+*+++++::+::::+++:+:+::+::+::+:+:++++++++***++*******+*++++*******###**###############****#####*##*#*#######%#######***#*#****#####%##%#%##%%##%#%#######*###%#%#%#@%%%#%%%%%%%%%%@%%@%%%%%%%%%%%%%@%%@@@%@@%@@@@@%%%@@@@@%@@%@@@%%%%%###**%##%%%%%%@%%%%%%%@%@%%%@%
%%%%%#%%#%##*##*###*************#*#****+*++*++++++++:+:::::+++::+:::+:::+++:++*+*+*+*****+*++*+++++++*+**#*#######*##################*##*##*#####*#########**#*#***###*######%##%%%#%#######*#*########%#%%%%%#@%%%@%@%%%%%%%%%%@%@@%@%%%@%@@@%@%%@@%@%%@%@%@%@%@@@@@%%@%%@%%#########%%%@%%%@@%%%%%%%%%%@#@
%%%%%%%#%#%%%##*##*###**##***************++++++++:+::+:+++:+:+:::::+:+:::++:+++*+++******+*+**+*+++++***####*##########################*#*###*##########%####***#**#*####%#%%##%######%#####**#**#*###*#%%%%%#%#%%%%%%%%##@%%@%@%@%%@%%%@%@%#@#@%@%@@@%@@@@@%@@@@%@%@@@%%@%%##%######%%#%@@%@@%%@@@%%%%%%@@%
%##%#####%##%#####**#*****************#****++++::+++::++:++:+:+++:++:+++:++++*++***+*+****+***++*+******#########*######*#########%##*#######*################*****#*####%%#%%%#%#%%%##**##********#*#####%%%@%%#%%%%@@%@%%%%@%%@%%%@#@%@@@%%@@%@@@%@@@@@@@%@@@%@@%@@@%@@@@@%%%#####%#%%@%@%@%%@@%%%@%%@%@@@
%%%%%##%%######*###****#****##******#*++**++++++++:++::::::+::+::++:+:+:+::+++++*++*+#***+*+*+*+*+++******###*#**##############%###############%######%######*#*####%######%##############*****+*****#####%#%#%%%@%%%%%@%@%@%%%@%%%%%%%%%%%@@%%%@%%%@%@%%@%@%@@%@%@@%%@%@%@%#%#####%###%%%@@@@%@%%%%%%%%@%%%
%%%%%%%#%%%%#####*##***********#********+*+*++++++:::+++::+++:+:+:+:::++++++++++**+**+#+***++*++++*+***#***######################################*######%#####*#####*###%#%%#####%#%#####****++**+****####%#%@##%@%%%%#@#%%%%%@%@%@@%%%%%%%%%%%%@%@@%%@%@@%@@%%@@@@@%@@@@%%%%######%#%%@%%@@@%@%%%%@%%@%%@@@
%%#%%%%#%%##%#####****#*##**#*****#*#****+*+:++++:++:+:+:+:+::+::+:+:+::++:*++*++******#****++++*+*+****#*#%#*#########################%####*############%#########*##%##%#%####%%%#####****+***++*****##%##%%%%%#%%%%%%%%%@#@%@%%%%@@%@#%%@%@@%%@@@@@@@%@%@@%%@@@%@@@%@@@@%#%%#####%%%%%%@%@@@%%%%%%%@@@@%@
%%#@###%#%######**#*#********#**********+*++*++::+:+++::++::++:+:++:++:+:++:++++**+******+*+*+++++:*****#*######*#######*####*#########*####################################%#%#%*####*******:+++**+*#*###%%%%#%%%%%%%%%@%@%%%@%%%#%##%%@#@#%%%@%@%@@%%%%@%%@%@@@@%@@@@@%@@%@%####%#%#%%%@%@%@@%@@%@@%#@@@@@
%%%#%%%#%#%########*#**********#**#*******+++++:+::+::++++++++:+:+::+:+++:+:++++**#+#********+*++++***#**#*#####*#*##*#########%###############*#####%*#*###*###########%###%###%#%#####*#**+*+*++****#*###%%%%%%%%%%%%%%%%%@@%@%%%%@%@%%@%%@@@@%%%@%%%@@@@@%@@%%%@@@%%@@%@@%%###%##%%%%%@%@@@%@%%%#%%@%%%%@
%%#%#%%%%%##%#%#**##****##**#**#***#*+**+*+++++++:+:+:+:+:+::::++:++:+++++++*++*****+*#+***+*++**++++*+****#######*######*#*######*#######*%###%#########*##***##############%#%#######****+***++++*****###%%#%%%#@#@%%@%%%%%@#%@%@%%@%%%%@@@%%@@%@@%%@@%@@%@@%@@@@@@@@%@@%@@###%###%%%%@@%@%@%@@%@%%@@@%@@@
%%#%%####%%#####**********************#**++*++:+:+++:+:+::++::+:++++++:++++++*+**+*+*********+++++*+*+***######***#*#########################*#######*##******#**###*#####%#%######%####****++***+******##%#%%@@%@%%%%%%@%%%%%%@%@%@%%@%%@%%%%@@%@%%@@%@@@%@@%%@%%@%@@@%@%@%%@%#%##%%%%%%%@@@%@%@%#%@%%%@%@@
%%##%##%##%####*###*******#****************++++:++::+:::+++:++:++:++:++++:+:*+++**+*********+*++++++**+**#**#*#**########*#*#########*###############**##*********#***#########%##%#####***#**++*++***##*%#%%%%%%@%%%%@%@%@%%@%%@%@@%%%%@%@%%@@%@@@@%@@%%@%%@@@@@@%@@@@@%@@@%%%%#%%#%%#@@%@%@%@%%%%%%%%%%@@@
%%#%%%#%%%*%%###********##**#*********#+#+++*+:::++++:+:::+::+++:+:+:++:+*:*+++*+*******#**+*+:*++++***##**######**#*###########*###*###%#####*##**#***+**#*************######%*#%%%####************##**###%%%#%%%%%%@%%%@%@%#@#%@%@%#%@#%%%#@@%@@%@@%@@%@@%%@%@%%%@@%@#@@@%@%%%%%#%@%@%%@@@%@%@%%@%@%%%%@@@
%%#%#%%##%##%###*#*****#****#**#*#***#*****+*+++:+:::+:++++::+:+:++:++*:+++++++**************+*+++++***#*##*##*#***##*#########*#######*###*#**###*******+********+******####%##%######*******+*****#**####%%%%%%%%%%%%%%%%%%@%%%%@#@%%%@%%@@%%@@%@@@@%%@%%@@@@%@@@@%@@%@@%@%%%@%#%%@#%@@@@@@%@%%@%%%%@%@@@@
%###%#%%%####%##*#*#**#+#**#*#*#*+#**+***+*++++++++::++:::++:::++++:+:++++++++*+*+*#**********++++++**+**#*##*#*#***#**###*###################***+******************+******###%###%######%#**#+******#####%#%%%%%%%%%%@%%%%%%%@%@%%%@%%@%@%@@@%%@%%@%@@@@%%%@%@@@@@%@%%@@@%@@@%%#%%%%%%@@%@%%@%%@%@%%%%@%%@@
%%#%#%%%###%####*##****#**#*#*#+****#*#***+++*+::++++:+:::+:+:+:+++:++:*+++++++*+***********++*+++*++*****#*****##**##*#*###*##*###########******#*****+***+++*+*+**+**+***######%##%#######*###*#*##*###%%#%%%%%%#%%%%%%@%%%@%%%%%@%%%%@%@@%%%@%@%@%@@@@%@@%@%@%@%@@@@@@@@@@@%#%%%%@%@%%@@@%@@@%@%@%%%@@%@@
%#%%%%##%#######%***#*****#***********#***+*+++++++:::+:++:::++:+:++++++++++**++*+***#*#******+*++++**+**#*##*#**#**#**#*#*#####*#*#####*********++***+*+*+**+**+**++**+****######%##%#%#####*##**########%#%#%%%%%%%%%%%%%@%%%@%%%%%@%%%@%@%%%@@@%%@%%@%@%@%@%@@@@@%@@@@@@@@%%%%%%%%%%@%%@@@@@@%%%%%%%@%%@@
%%##%#%%#%%#######***#*****#****##****+*#**+*+:++::++++++++:+::+++:+++++*+++++*++*************++++*+****##**##*###*##*#*##*#**##########**#*#*+*+**+++++++*+***++*+**+*+***####%%#%#%#%##%##*#*######*##%%#%#%#%##%@#%%@@@%%%@%%%%@%%@%%@%%@%@%@%%@@%@@%@@%@%%@%@%@@@@@@@@@@@%@%%%%%%@%%@@@@%%@%@@%@%@%@@@@@
%%#%%####%##%#%*#*#****#****###*****#*#**+**:+++:+:::::+:+++:+++:++++++++++*++++*************+*++++**+**#*#***#*#*#######*##*#***######******++*+++++++++**+**+**++++**+****######%%%%%#%###%############%##%#%%%%@#%%#@%%%%%%%@@%%@%%%@%@%%@%@%@@%@%@@@@@@@@%@@%@@@@@@@@@@@@@%%%%%%%%@%@%%@@@@%@@%%%@@%@@@@
%%#%%#%%%%%%##**#*#*******#*****#*******#**+++++++:+::++++:+::+++++++++++*+*+++*+*********+****++*+++***#*#####*#*#**#*###*#*##*###*##*#****+++++++++++*+++******+*+++*****####%##%###%#####%#######%%##%#%%##%%#%%%%@%#@#%@%@%#%@%%%%%%%@@@%@%%%@@@@%@%%@%%@@@%@@@@@@@@@@@@@%%@%%%%%@@@@@%@@%%@@%%%%%@@%@@@
%%%%%%#%###%####*#*****##**#****#****##+**+*+++::+::+:::::+::::+:++++++++::++++****+#****#***++*++++*+*******#*#*#*##%#****#*#####*%##*#****+*+++++++++++*+*+******++*+*****####%%########%###%###%########%#%%%%%%#%%%%@%%%@%%%%%@#%%@@%#%%@#@%@%%@%@%@%%@@%%%@%@%@%@%%@@%@@@@%@%%@%@%%@@@@@@@@%@@@%@@%@%@@
%##%#%#%%###%#*###**#****#*****#****#**#**++*+++:::+:::::++:+++++::++++++++++**+++*#***********+++*+*+***##########*#######**#*#*#*####******++++++++++++++******+****+**#*##*@###%#####%#%%%%##%%%##%#####%#%%##%#@%%%%@@%%%%%%@%%%@@%%%@%%%@%@@@%@@%@%%@@@%@@%%%@@@@@@%@@@@@@@@%@@@@%@@%@@@@@%@%@%%%%%@@%@
%%%%%%#%%#%##%####**#**#****##**#**#**#+*+*+:+:++:+:++++:+::::++++++*++++++++++*++*+*##*#*****+*++*+*****#*#*#**########*####****#*####*#*+*+*+++:+++++*+**************#**#####%######%##%#%%##%#%%#%####%#%%%%%%%%%%%#%%#%%%%%@%@@%%%@@#@%%%@@%%%@%@%@@@@%%@%@%@@@@@@@%@%@@@@%@%%@@%%@@%@@@@@@@@@@%%@@@%@@@
%%%%%%###%%%#*######**#*#*##*****##*******+*+++++:+:+:+::+::+++++:+++:++:+++++**+#************+++++**+*****#####*###*######*##*#####*#*#***++++++++:++++++***##*#********########%##########%#%%%#%%##%#%#%##%#%%%%%%%@%@%%#@@#%@%#%%%%%#%#%@%%@%@%%%@@%@@#@@@@@@%@@@%@@@@@@@@@%@@@@@@@@@@%%@@%@@%@%%%%@@%@@
%%%#%%%%#%###%#####**********#****#*******+++++++++::::++:+++++++++++++++++++*++++*******#******+++**++**#**##*#*#%*##*##########*###*##**+*+++*++++++++*******##*********###################%%%#%%######%%%##%%%%#%%%%%%%%%%#%%#%%%%%###%#@#%%%%@@%@@@@%@@@@@@%@@%@@@@@@@@@%@%@@@@@%@%@@@@@@@@%%@%%@%@%@%@@
%%%%%%%#%#*#%#%##*##**#**#**#####**#**#**+**+++++:+++:++++:++::++:+:++++++++++**+****##*#****+*+**+*+***+***#%*##*###%###%*%#############*#*++++++++:+++****#########**#####%#####**####%##%#%#%%#%#%%####%%%##%#@%#%%%@##%%%@%@%#%%%%%%#%%#%%%@@@%@@%@%#@@@%%@@@@@%@@%@@@%@@@@@%@@@@@%%@@@%@@@@@@@@@%@@@@@@
%%%%%%%#%####%####**#*************#*+******++++++:+::+++++++:++++:+++++++:+++*++******##*******+*+*++*******#*#*########################****++++++:++++++***########*##*########**#*#****%###%#%%#%%%#%%%%##%##%%##%%%%%%%@%%#%#%%%####%###%%%%%%%@#@@@@@%@@@@@%@@@%@@@@%@@%%@@@@%@@@@@@@@@@@%@%%@@%%@@%%@@@
%%%%#@####%%####*##*####***#*#*#**#********+++++++++++++::++++++:++++++++*+++++*****+**#**#*+*****+*+*+***#***##*######################*##*+*+*++:+:++*+****###########%#######*##*#***#######%#%#%##%%#####%%###%%%%%%%%%%%%%#%%########%##%%%%%%@@%@%%@@%@%%%%@@%@@@@@@%@@@@@@@@@@%@@@@@@%@@%@@%@%%@@@@@@@
%%%%%#%#%%#%#*%##***#***#****#**#+##+**#**++*+++++++:+:+++++:++:+++++:*+:++:**+*+****************+++*********##*##*#######%#*###%#*######***++++++++++++***#%#######*#########*##**#****######%#%%######%%#%##%%@#%%%%#%@%#%#########*######%%%%%@@%@%@@@%%@%@@@@@@%@@@@%@@%@@@@@@@%@%@@@@@@@@@@@@@@@%@@@@@@
%%#%%%#%##%#######***#**************#*****+++++:+:+++++++:+:*+:+:+++++:++++++++******#********+*++*++*#***#*##*###%#####################*#****+++++++++***#**##%##%##########*##********#*####%#####%%%###%#%%%%%%%%%%%%#%%%%##############%%%%%%%%@@@%%@@@%@@@%@@@%@@@@@@@@@@@%@@@%@@@@@@@@@@@%%@%%%@%%@@@@
%%%%#%#%##%#%%######****#**#**#*###****+**+*++++++++++:++++:++*::*+++++++*+*++*+*+**************+**+*+*****##*#######*#########%##%####*#***+*++++++++**+**##########%######%#*###*####**#####%%###########%######%#%%@%##%####*####*##%####%%%@@%@%@@%@@@@%@@%@@@%@%@@@@%@@@@@%@@@@@@#@%%@@%@@@%%@@@%@%%@@@
%#%%%%###%#########*#****#*#**#**##********++++++++++:+++:+++::++::++:++++++++++*+*+****#******++**+*********####################*#####**#**++++++:++++**###########%####%#######**#****######*%#####*#####%####%%%%%########*####**#######%#@%%%@@@%%@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@%@%@@@@@@@
%%%%##%%%#####%######**#**#***#***#*******+++*+++::+:++:++:++++:++++++:*++++++*+**+***#********+**********#**#####%##%##################****++++++:+*+****####%####%######%####*##*****#*%#####%######*##########%%%%%#%#####**###*##*###%%#@%#%%@#@@%@@%%%@@%@%%@%@@@@@@@@%@@@%%@@@@@@@@@@@@@%@@%@%@@@@@@@@
%%%#%@##%#########*******#**#**##*###****+**+++++*++:+:++++++:+:+:++:++:+++++++++++*+***#*#****+*+++****#**############*####*%#*###*#####***+*+*+++++++***#*#%###%####%#####%%######**#####%%###########**####%#%%#%#######***#****###***##%%#@@@@@%@%%@@@@@%%@@@@@@%@@@@%@@@@@@@@@@@@@@@@@@%@@@%@%@@@@@%@@@
%%#%%%##%%##%######*##**#**#**##***#***#****+++++:++::+:+:++++++:++++*:+++++++:++*+*************+++*******#**#*#####################*##*#****+*:+++++*+**###########%#########%#*#*####*###########*#*****####%%##%####*#*#*#**#*#*####%%%%@%@@@%%%%%@%%@@@%%@@%@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%@@@@@@
%@##%#%%#%%#%#####*##****#*****##**#**#*****+*++++++:+++:++:+:+++++++:*+++++:++++++*++*#*#****+*+**++****#*#*#*############%########%##***#*+**+*++++******######%############*######*#######%#%#%####*#*###*##%#%%######******#+#######%@%%%%#%%%%@%@@@%%@%@@@%%@@@@@@@@@@@@@@@%@@@@@@%%@%@@@@@%@@@%@%@@@%@
%%@##%%#####*###*###**#****#**#*#*#*#**#**+**++++:+++:++++++++++++++++:++++:++++++*+****#**#***+**+**+****###*####################%####******+*++*+*+*****########%##########*###*#*##*#####%%###*###*##**%#############*********##*##%#%%%%#@@#@%@%@%%%@@@@@%@@@@%@@%@@@@%@@@@@%%%%@@@@@%@@@%@@@@%%@@@@@@@@
%%%%%#%#%%###%#####*#*****#***##**#****#****++++++++++:++:++:++++++++++++++++++:+*++**********+*++*+********#*##*######################******+++++++*+***#*######*####%##%##########***####*##%%#%#######*##########**##*****#***#####%@%%%@%%%%@@%%%@%@@@@@@@@%@@@@@@@@%@@@@@%@%%@@@%@@%@@%@@@@%@%%@%@@%@@@
%%%#%#%%####%##%##*##*#+********#************+++++++++++++:++++:++::++++++:++::+++++****+#******+***++****####*#%####*#*##%*####%#####***#**++++++*+*+*****####%######*###########**#****#######%#######*#*##%#####**##***#****######%%%#%@%@#%@%@@@@%@@@@@%@@@%@@%@@@@%@@@@%@@@%@%%@@@@@@@@@@@%@%@%%@@@@%@@
%%%%%%%%%%###%#####**#***********#*****#****+*+++:+++++++++++++++++++++++++:+::+:++*+**#********++*+*+***#**#############*#####%*########****+*++++++*****##############%########*******#*#*###############*##*###*#************#*####%%@%%%%%@@%%%%%@@%%@%%@@@%@@@@@@@@%@@@@%%%%@@%@%@@@%@@@%@@@@%@@%%@@@@@
%%%#%%%###%##%##*###**###****#****#***#*****+*++++++++++++:++++:+:++++++:++++:+:++++******#+#+*++++**++***#*#########################*#***#*+***++*++******###%#################*+*********##*###%#%*%#######*#####*#**********##*%#%%@%%%%@%%%@%@@%@%%@%@@@@@%@@@%@@%@@@@@@%@%%%@%%@@%@%@%@@@%%@@@@@@@%@@@@
%%%%%%##%#%#######*###***#*****#****#*#*#**+**+*+:++++++++++++:+:+++:++++:+:::++:+**+******#+**++++*+**#+##*######################*###*#**++++*+**+**+***#*###%##################****+**+#*****#####%%%##%##%#####*#**#********####%#%%%%%%%@@@%@%@%%%@%@@@@%@@@%%@@@@%@%@@@@@%%%%@%%@@%@@@@%@@%@%@%%@%@@%@@
%%%%%%%%###%%#######**###*###*#*##***#*******+*:+++++++++++++++:+::+++++:+:::::+++++****+*******++*+*****#*##*####**######*##########**#*****++***++*******###################******++***+****#########%%#########*#*#***#***###*#%%%%%%%%%%%%%@%%@%@@%@%@%@@@%@@@@@@@@@@@@@@@@%%@%%@%@@@@%@%@@@@@@@@@@@@@@@
%%%#%###%%#%%#######*#***#*******##*#*###**+**+++++++++++:++:+++++++++++:::+:+::+++******#****+***+*+*+**##***####*%*%##*#######%####*##*+****+*++++********#####%##############****+**+++****#*##############*##**#***#***##*#*#*%#%%%%@%%%@@%%%%%@@%@#@%@@%@%@@@@@%@@@@@@@@@@%@#@%%@%@@@@@@@@%@@%@@@@@@@@@
%%%%%@#%##%#%*#####*##****#**#****+**#********++++++++++:*:+++++++++++++::::::::++++***********+:+*+**++*##*########%*###############**#*****+*++***+*******##########%########******+*+*****#*#######%##%#%######**#****#*##*####@%%%%%%%%%@%%%@@%@%@%@@@@%@%@%@%%@@@@@@@@%%@%%@@%%%%@@@@@@%@@%@@@@@%%@@@@@
%%%%###%%#%#%##%#####*****#****#**##**********++++++++++++++++++:+++++++:+::::::++++*#***#*****+**+********###*###########*#########*###****++****+**********#####%#%#####%#####****++*+++*+*****#########%######*#*#**#**######%##%%%#%%%%%%%@%%@%@@%@@%%@@@@@@@@@@@%@@%@@@@@@@%@%%%@@@@@@@@@@%@@%%@@%@@@@@
%%%%%#%#%#########***##*#*****##*******#****+*+++:++++++++:+++++++++++:::+:::::::++****#******++++*+******##*####%####*##**#####*#####******++*+*****++*******###*##%###%#%####**#+*++***+++****#**%###%#######*#*##*#***##*#####%##%%%#%@%@%%%@%%@%@%@%@@%%@%@@@%@%%@%%@@@@@@%@@%@@#@%%@%@@@@@@@@@@@@@@@@@@
%%@#%%#%%#%#########***#*#*****#**#+**#*****+*++++++*+++++++++++*++++++::::::::::+++*+****#******+**+****##########*##*#*###*########*************+++*********#########%#######***#*************######%%##%########*#*#*#*#*###%###%%%%%%%@%%@@%%@%%@@@@%%@@%%@@%@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@%@@@@@@@@@@
%%%%#%%%#%##%%#####**##***********#*#**#*****+++++++++++++++++:+++:+++:++:::::::+++***********+*+**++****########*####**#*#*############*****++++***+++++*****######%###%########*#****+***+****#####%#%%#####*######*#*###**##*%%#%%%%%%%%%%%%%%@%%@%@@%@@@@@@@@@@@@@@@@@@%@@@@%@@@@@@@@@@@%@@@@@%@%@%@@@@@
%%%##%#%%#%##%#######***#*#*****#*##*********+*++++++++++++++++++++++++::::::::::*++****##***+*+++**+****####*####***#*****#**########****+********+++*+*+******##%###%###%######*****#**+********####%%%#####%*%**#***#*#######%#%%#%%%%%%%%%%%%%%%@@%@%%%@@%%%@@@@@@%@@%@@@@@@@@@@@@%@@@@%@@@@%@@%@%@@@@@@
%%%#%%##%#%#####*####*#******#*#*#*#***#*****+++++++++++++++++:++:++++::::::::::+++***********+*+*++****########*#*##*****#*****#######***#**++***+*++*+********####%########%########**********######%%%%%#######**####*########%##%%#%%%%%%%%@%%%%%@%@@%@%@%@@@@@@@@@@@@@%@@@%@@@@@@@@@@@@@@@@@%@@@@@@@@@@
%#%@#%#%#%#%%######*#***##*#**#***#*********+**+++++++++++:+++++:++*:+++::::::::++++************+*****+***##*####*##****+****##*######***#****+*+*+*++++++++++**##########%#%########**#**********###%############**#*#**########%#%%##%#%%%%%%%%%%@%@%@@@@@@%@%@@%@%%@@@%@%@@@@@@@@@@@@@@@@%@@@@@@%@@@@@@@@
%%%%%###%%#####%#####**#*****#***#*#***#*#****++++++++++:++++:+++:+++++:+:::::::++++***#******++++++++***#*######*#************#*#####****+***++++***++++++++****######%#####%###%####**********#*###%#%%%######***###**###*###%%####%%#%%@%#@%#%%%%%@@%%%@%@@@@%@@@%@@%@@@@@@@@@%%@@@@@@@@@@@@@@@%@%@@@@@@@
%%#%%#%%%#%#%######*#*#**#*#*#*#****#*##****+*+++:++++++:++++++++++++++::::::+:::++++******+****+**++*****#***#*##****+*+++*****########********+**+++++++++*****##############%##%####*****+*****####%%########**##*###*########%#%#%%#%%%%%##%%%%%%@%@@@@@%@@%@@@%@%@@@%@@%@@@%@@@%@@@@%@@@@@@@@@%@%@@@@@@
%%%#%%#%#%%%%#######********#*#*###*#**#*+***+*+++++++++++:+:++++++++++::::::::+:++++********#***++**+****####*####*****++**+****######********++*+++++++++++******#######%###%%#########*******####%#%%##########*#**#*#*######%%#%%#%%%%%%%#@%@%%@@%@#%@@@@@%%@@%@@@%@@%@@@@%@@@@@@@@@@@@@@@@@%@@@@@%@@@@@
%%#%%#%#%#%%######*##*##******#*****#**#*****+++++:+++++++++++++++++:++::::::::::+++++***********+++*****#*##*#####**+*+*+++++****###*##********+*++**++*+*+*****#*#########%#%########**+*******####%%%#%########**#*##*#######%#%%#%%%%%%%%%%%@%%%@%@@@@%%%@@@@@@@@@%@@@@@@@@%@@@@@@@@@@@@@@@@@@@%@@@%@@@@
%%%%%%###%%%%######**#****##******#*#**#******++++++++:*+++::++++++++:+:::::::::+:++++****#+********+**+#+#####*#*#***++*+*+*+***#####*#********+***++*++*+++*******########%########****+**+******###%##%######**##*#*##########%##%*@#%@%#%#%%%@%@%@%%@@%@@@%@%%@@@@@%@@@@@@@%@@@@@@@@%@@@@%@%%@@@%@@@@@@@
%%%%%%%#%%#%##%######***#***#*********#****+**+++++++++++:++++++:+++++:::+:::::::+++++*********+*++*+****##*########**+++++++*+****####*#**********++*++**+*********#*######%#########************####%#%#######*###*###*########%##%%%%%%%@%%%%%@%@%@%%@%%@%@@%@@@@@@%@%@@%@%@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@
%%%%%###%##%%##*###**#*#******#*#*#***#*#**+*+*++++++++++++++++++++:++::::::::::+:++*+**#***#***+****+***#*#**###**#**+*++++++*+****######**********++*++*++*********##%###%%##%######******+*****###%##*%##*###**###*#**##*#%*%##%%%#%%%%%@%%%%@@@@@%@%@@%%@%%%@%@@@%@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@
%%##%%%%#%%#%##%###***##******#**#****#***+#+**++++++++::++++++:++++++:++::::::::++++*+*********++********#*%*#**##****+++*:+**+****##**********+**+***++*+**+*#*##*****%####%##%##*##**#**+****####%###%%#######*#**#*#**##*%##%%#%#%%%%%@%#@#%%@%%@%%%@%@@@@@@@@@%@%@%@%@@@@%%@%%@@@@@%@@@%@%@@@@@%@@@@#@@
%%%%%##%%%%#%#%#*#####***#****#*#*#**#*#******++++++++++++++++++++++++::+:::::::+::+++*********+**+*++****##*#*##*##****+++++++****#*###**#******+********++******#**#############%#*#****++**+****###%##%####*#**#*##########%####%%%%%%%%%%%%%@%%%%%%@%%%@%@%@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@
%%%%%%#%#%%###########***#*******#****###*****+++++++++++:+++++++++++:++::::::+::++:++***********+******#*#####**###**+*++++++++****###*###*********++***************#################***+++*+*****###%#%####*####*###*#*####%###%%%%%##%%%%%%@%%%%%@@%%%%@%@%%@@@%@@@@%@@@@%@@@@@@@%@%%@@@@@@@@%@@@%%@@@@@@
%%%###%#%##%##%#%#%*##*#*#***#*#****#***********:++++++++*+++++++++++++::+:::::+:+++++++********+*+++*****#*#*###*##***+*+:++++++***##*##***********+**********#*******########%####****+**++*****###############*#*#####*#*###%##%%%%@%%%%%%%%%@@%@%%@%@%#@%@%%@@@%@%@@@@@@@%@%@@@@@@@@@@@@@@@@@@@@%@%@@%@@
%%%%%#%%%#%%#######*#**#*****#**#*#**#*******+++++++++++++++++++++++:+++::+:::+:::+++++*+********+***+****###*######****+++++++++***#######*#**********+**+******#*****########%###**#**+++*******####%####*#*##**#*#*###*##*%##%##%%%%%%%%#%@%%@%@%%%%%@%%@%@%@@@@@@%@@@@@@@@@%@@%@@@@@@@@@@@@@@%@@%@@@@@@@
%%%%%#%%%%#%#%##**##*##+****#****#*****#*****++*+++++++++++:*+:++++*:++::+:::::++:::+*+*+**+****+++++*****##*#####*****+++:+:+++++***#######*****+**+*+#********#**#**##*##%##%#####**#*+*++++*##*#######%#*##***#*#########*###%#%#%%%%#%%%%@%%@%%%@%@%@@@%%%@%@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@%@@@
%%#%%#%#%#%##########*##*******#**#**#***+***+*+*++*:+++++++++++++:++++:+:::::+::+:++++++**+******+***+*#**########*#**+++++++++:*****###*####*****************#******#*#*#########*#***+***+****#*###%#####*##*##*####*#*#*%#%##%%#%%%%%%%%%%#@%%@@%%%%%%%@%%%%@%@%@@@@@@@@@@%@@%@@@@@@%@@@%@@@@@@@%@@@@@@@
%%@##%#%#%#%######%*##**#****#****#****#**#**+*+++++:++++++*++++++++++:++::::::::+:+++++++*+**+***++*+*****##*##*###****++++++++++*****##*##********+******************#*##########*****++*++*+****#########*###*##**###*#######*%#%%%%%%%%%%%%%%%@%%@%%%@%@%%@%@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@
%%#%%##%#%#%%%#%##*##****#**##*#*#*#*#*#******++++*++++++++++++*+*++:++:++:+:++++:+++++++*+*+++*+++*********##*###***#*+*+++:++++++**#**####**#**************#*+***#*##*##*#%######*#*****+*+*****####%%%%#*##*#*#*##*##*%#########%#%%%%%%%%@%%@%%%@%%@@%%@%%@%%%@%@%@@@@@@@@%@@@@@@@@@@@@@@%@@@@@@@%@@@@@@
%%%%%#%#%%%%##########***#*******#**#**##******++++*++++++++++++++++++++++::++:::++*++++*++++*+++**++*****###*#####***+*+++++:++++*+****#####*********************#******#**####*####****++********######*##***##*#######*#*##%#%#%#%%%%%%%%%%%%%@@@@%%%#%@@%%%@%%@@%@@@@@@@@@@@@@@%@@%@@@@%@@@@@@@@@@@@@@@@
%%%%#%%%########%###***#********#+*#*#*****#+**+*++:++:+++:+++++++++++:+::+::::++:+:+++++++++++++*++**+******##*##***#*+*+++:+++++++****#**###*#**********#******#*****#***###*###***#*****+******#*#####%#######*#**#*#######*#*%%%#@%#@%@@%%%@@@%%%%%%%%%%@@%@%%%%%@@%%@@@@@@@%@@@@@@@@%%@@%@@@@@@@@@%@@@@
%%%%%%%%%###%##########**#*****#*##*#***#*****++*+++**++++++++++++++:+++:+::::+:++:+++:+++++*+++++*+*****#**###**##*##*++++++++:++******#*###*#*****************#*********#**####*#*#*****+******#*%###%####*###**########**#%#%#%%%%#%%%%%%%%@#@%%%%%%%%%%%%%%%@@@@%@@@@@@@@@%@@@@@@%%%@@@@@@@%@@@@%@@@@@@@
%%##%%#%%#%##%########********#**#****#***#**+**++++++++++++++:++++++++::+:::::::++++:++++*+++++*+++++*****###**#*#******++++++++++*+***#####***********************#***##*#######*******+********###%*%########****###########%###%%#%@%%%@#%@%%%@%%%##%%%%%%%%@%@@@@@@@@@@@@@#%@%%%#%%%@%%%@@@@%@@@%@@@@@@
%#%%#%#%#######%**###**##*#***##***************+++++++++:+++++++++++:+:+::::++++:++++*++*++*+++++++++***+#*#*###*####****++++++:+++*+****######*****#****+*****#*******#*+**#####*#*****+***+***#*####%######**#**###*####*%*####%##%%%#%%#%@%%%@%%%%%%%*%@%%%%%@@@@@%@@@@@@%%@@@%%@%@%%%#@%%%%%%%@@@@@@@%@@
%%%%%%%#%%#####%#######*******#******#**#****++++++++++++++++:++++:+:+::::::::::++++:++++++++++++++*+*++*******##**#*****+++++++++++******#*####********************#*****##**###*****************####%########***#*####*########%#%%%%%#%%%%%%@%%%%%%#%%#%#%%%@%@@@@@%@@@@%%%%%%@%#@#%%%%%#%%%%@%%@%%%@@@@@
%%%%%#%%###%%#########***#*****#***#*##**#*****+++++++++++++++++++:+++::::::::++:++++:+++*++*++++++*+*****#**##*#*#******++++++++++++*****#######****#*************#**#******#####***************#############*#*##*##*##*#*######%##%%##%%@@%%%%%%%%%%#%##%%#@%%%@@@@@@@%@%@%%%@%%#%%####%%%%#%@%@%@@@@@@@@
%%#%%%##%%%%#####*#*#***#***#**#*******#*#***+**+++++++++++++++++:++:::::::+::::+:+:+++++++:++++*:+++++*+*+*###*##*%##***++++++:*++++*****#####*************#*#***#**#**##**#******#************#*####%#######*####*###*#########%#%%%%%%%%##%%%%%%######%#%%%@@%@%@%@%@%@%%@%%%%%%%%%#######%%##%%%%@@@@@@@
%%%%%%%%#%%#%##%###*##*#**#**********#*#*#***+*++++++++++:+++++++++::+:::::+:++:++++++++++++++++++++++++*+**#**#*##*******+++++++++++++**##*######****************#****#******###***************#*#########*######*#################%#%%#%%%%#%%#%%###%#####%%#@@@%@@%@@%%%%%%%%########%###%%%#%%%%@@@@@@@@
%%%%#%#%%#%####*###*###*****##**#*##***##*****++++++++++++++++++:++++:+:::::+:+:+++++++++*++++++++++++++****+%**##*##****++++++++++++******######************************#**#*****#********+****############*##*##*##*#*########%####%%%%%#%%%%%%%##%*##%##%%%%%@@@%@%@@%%@%%%%%%*##%#%##%##%%%#%%%%@%%%@#@@
%%%%%###%#%##%######*****#***#*******#*****#*+++++++++++++++++:++++++:::::::+:++++++:+++++++++++:+++++++++++*****###**#**++++*+++++++********####***************#****#*#*****#**#**#***************###########*##*#**#######*######%%##%%%%#%%%%#%#######%#%%%%%%%@%%@%%@%%%%%%#%#%####%%##%#%%%%@%%%%@@@@@@
%%%@%%%###%#######**###********#*****#*********+++++++++++*+++++++::++:+::::+:+:++++++++*+++++++:++++:*+*++********####+****+*+++++*++++****#####*******************#*#**#****#**********#******##*########*#########*#####*######%###%%%%%%%%%#####*######%%%%#@@%@@%%@%%%%%#####%#######%%#%#%%%%%%%@@@@@@
%%%%####%#%##%######***#*********#******#*****++++++:+++++++++++:+++++++:+:++++++:+++++++++*++++++:+++++++****************++++++*++++*+******####*#***************#********##**#*****************##*###%##*#####*#*#*#*###*%*######%#%@%#%%%%%#%##########%%%@%@@%@%@%%%%%%#%%%%###%#%#%#%#@%%%%%%%%%@@@@@@@
%%%#%#%%%#%##%#######*#***********####*#*******++:+++++++++++++++++++++:+:+:+++++++++++++++++++++++++++++++*****+********+*+++++++*+++*+******#*#*#*****************##*#******************#****##*####%##########*###########*#######%%#%%%%#%%##*###*####%%%%%%%%%%%%%%@%%%%%%###%%%#%%%%%%%@@%%%@@%@@@@@@@
%%#%%#%##%%%####*####***#*#**#*#**********#*++*++*:+++++++++++++++++++:++++++*+++*++++++++++++++++++++++++++*+*************+***++*++*+++**##*#####*********##**#****#****#**#*********************################**##*############%%%%%%%%%%###*####*#*##%#%%%%@%%%%%%%%%#%%%#%%%#%%%%%%#%@%%%@@@%@@@@@@@@@
%%%%%##%##%###########*******#**#***#*****+****++:+++++++++++++++++:++++++++++:+++++++++++++++++++++++++++**+*+*+***********++++++**++****+****#*#****************##***##****************#*******#*###%####*#############*##%##%###%%#%%@%%%%###*##*######%%%%@@%%@%%%%%#%%%%%%%#%####%%#@%@@@@@@@@@@@@@@@@@
%%#%%#%%%*####%#####**#***********#*#*****#**+++*:+++++++++++:+++:++++++++++++++++++++++++++++++++++++++++++**************+*+++*++*++++*******###*#*******#*********##*************************#***##########*####*#############*##%%#%%%%%%#####*#*#####%%%%%%%%%%@%%%%%%@%#%%#%#%%#%%%%@%@@@%@%%@@@@%@@%@@
%%@%%%%#%%%#######**##********#*#**#**#**#**+*+++++++:+++++++::+:++++++++++++++++++++++++*+:++++++++++++++**+**+***+*****+*+*+*+++++**++++******##*#**#***#*#******#*#*#***************#***#******#*####*#*#*##*###*########**%###%##%###%####%#*#*##*#%##%%@#@%@@%%%@%####%#%%#%#%%%%%@@%@@@@@%@@@%@%@@@@@@
%%#%%%#%%###########******************#********+++++++++++++++::+:+::+:++++*+++++++++*+++++*++++++++++++++***+****************++**++*+++*****#*#*#*******#************###*************************###################*###########%###%%##%%#######*#*##%##%%%@%%%%%%%%%#@%%%%#%%%%%%@%@@@@@@@@@@@%@%@@@@@@@@
%%%%%%##%%########*#****++*+*************#*+***+++++++++++:++::++::::++++++++*++++++*+++++++++++++++++++*+*+******+*****+**+**++**+++*+*+******#*********************##*******+********#******#**###############*##########*######%##%%%%##%####**#**##%%#%%%%%@@%@%%%%%%#%%%%%%%%%%@%%@@%@@@@@@@@@@%@@@@@@@
%%%%%##%%%#%#######****+++++****#*****#****#*+*+++++++++++:+:::+:+:::+:+++++**++**++++++*+++++++:++++++++*******+**++***+++***+++++**+**+*+**********#****###********#*#*********+******************##*%*######*%########%*%####%##%#*#%#%#####*#*########%%%%%%%%#%%#%@%%%#%#%%%%%#@%@@@@@@@@@@@@%@@@@@@@@@
%%%%%%%%############+**+*+++***#***********+**+++++++++++++:+::::::::+::++++*+*++**+++++++++++++:+++++++++*+******+*+***++++*+++++++++++++***********************#*****##*****+********#**********##*###**##*###*#**#*#########################****###%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@%@@%@@%@@@@@@@@@
%%#%%%%##%##%######***+++++*+**#***#***#*******+++++++++++++:+::::+:::::+++++++**+++++++*+*++++++++:+++++++***+***+**+*+*+*+++*++****+*++****#************#**#******##*##***+***++*******#**#***##*##**#*#*#################*%#%#%####%###%#**###*####%#%%%%%%%%%%%%##%%#%%%%#%%#%%@@%@@@%@@%@@@@@@@@@@@@@@@
%%%#%%#%%#%########**++++++++****#**##*********+++++++++++++++:::::::::::++++++*+*****+*+*++++*+++++++++*++********+***++++*+*+*+++*+++++++**+*************###********##**********************##*#*#*#*##*###*##########%##*######%######%###*##*######%%%%%%%@%%%%%%%%%#%#%#%%%%%%%%@%@@@@@@@@@@@@@%%@@@@@@
%%%#%%%#%#%%######***++++::+++**#*****#+*******++++++++++++:+:+::::::::::++++*+***++******++++++++:+++++*+++********+*+*+*++++*+*++*+**++*+*****************#*******#*******++*+*+*************#***#***#**#*####*########*###*###%##############*####%#%%%%%%%%%%%%%%#%%%%%#%%%%%@%%@@@@@@@@@@@@@@@@%@@@@@@@
%%%%%%#%#%#%%#####**+*++*:+++**********#********++++++++++:+:+:::::::::::++:+++*+*+***+**++*+++++++++++*+++*+**+***+*+*+*++++++++*++**+*++***++*+***+***##***************#****+***********#*+*#**#**##**##**######*%*#################%###########*######%%%@%@%%%%%%%%#%%#%%%@%%%%%%%@@@%@@@@@%@%@@%%@@@@@@
%%%%#####%##%##*###**+++++++++***#**************+++++++++++++:++:+:::::::::++++*+*********+*++++++++++++*+*+**+******++*++++++*++++++**++*+***++**+*******#***********#****+*****+******#**********##*###*###############################%############%%%%%%%%%@%#%%%#%%%#%%%%#%@%%%@@@@@@@@@@@@@@@@@@@@%@@@
%#%%%%#######*###*#**++++:++++********#********+++++++++++++++:+:::::::::::+++:+++*+*#******+++++++:++++++*+++******+***++++*+++**++++++**+*+*+*++++**+**********************+++*+************************#*####%#########################*##*###*##%%#%#%%@%%@##%#%#%%%%%%%%%%%%%@%@@@@@@@@@%@@@@@@@@@@@@@@
%%%#%#####%#######**+++::+::++*******************++++++++:+++++::::::::::::::+++++*********+*++++++++++++++******+****++*++++++++++++**+*++++**+++*++***********+************+*******+******+*********##*##*######%##################*%*##*#########%##%%%%%%#%%%%%%%%%%%%%%%#%@%%@@@%@@@@@@%@%@@@@@%%@@%@@@
%%%%#%#%%#########**+++:+:::++*****************++++++++++++++:+:+::::::::::::++++*+********+++++++++++++++++++*********+++++++++++*++++*++++++++++++++*+********+***************+**************+*#*****#*#*###########*######################*########%%%%%%%%%%%#%%%%%#%%%%%%@%%%@@@@@@@@%@@@@@@@@@%@@@@@@@
%%%##%#%##%########*+++:::::::*++*******#*****+*++*+++++*+++:+++:+::::::::::+:::+++++*****+***++*:*+++++++*++*++*****+**++++++++*+*+*+++++++*++*+++*+**********+**+****************************+*+#*#****##*#****###########*###**###*#**#*##########%##@%%%%%%%#%#%#%%%%#%%%%%%@@#%%@%@@@@@@@@@@@%@@@@%@@@@
%%%%%#%#%##########+*+:+::::++++*****#***#*****+++++++*+++++*+++++::::::::::::+:+++++*+********+++++++++*+**+*+*++*******++++++++++++++*+++++**+++*+++****************************************************#####*###*##################################%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@%@%@@@@@
%%#%%%#####%%####*#+*+++:+::++++*******#*****++*+*+++++++*+++++++:+::::::::::::+:+++*+********++++++++++++++*++******+**++++++++++++++++++++++++**+++*********+*************************************#*#**###*##*###*#########*#**############%#######%#%%%%%%#%%%%%%%%%%%%%%#@@#@%@@@@@@@@@@@@@@@@@@@@@@@@@@
%%%#%#%%%#%#####*#*#+++::::::+++******#*********++*++++++:++++++:++:::::::::::::++++++********+*+++++++++*+*+*++**+****++++++++++++*++*++++++++++++*+********+*************************##+*************##*#***#**####*##%#####*##**#####*######%#####%#%%%%%#%%%%##%%##%%##%%#@%@%@@@@%@@@@@@@@@%%@@@@@%@@@@
%%%%####%%%######*#*++:+::::::+++*************+++++++++++++++:+++++::::::::::::::++*+++********++++++++++++***+++*+******+++++++++*++++*+++++*++*++**+******+**********+******+**++***********#****#***#*##*#*#*##*##*######*#*#**###*################%%%#%#%%%%%%%%#%#@%%%#@%%%%%@%%%@@@@@@%@@@@@@@@@@@@@@@
%#%%%%%###%#####*#*#++++::::::+:*+*************+*++:+++++++++++++:++++:::::::::::++:++++***+*+*+*++++++**++*++***********+++++++++*+++++++++++++**+*++*++*+**++*+*++*+**++*+*****+**+******************#*#*#***#****##*#####*#*#######*############%##%#%#%##%%%%%##%%%%#%%#%%%%@%@@@@%@@@@@@@%@@@@@@@@@@@@@
%%%##%#########*###*+*+::::::::+++************+++*++++++++++++++++++::::::::::::+:++++*++******+++++++*+++****+++*+*+++*+++++*+++++++++++++++++++++++*++++*+*+++**++*+*+*+++*********+****+************##*#*#*#*###***##*#***#**#####################%%#@#%%#%%%#%%##%%%%%%%%@%@%@@%@@@@@@@@@%@@@@@%%%@%@@@@
%%%%##%#%#####*####*++++:::::::::++************+++++++++++++++++++++++::+:::::::::++++++++*****+++++++++****+*+*+++++*+*++*++++++++++++++++++++++++*+++*+*+++++++*++++++++++++*+++++**+*+*++*************#*****##***#**###****#**##*###*########*#%##%%%%##%%#%%%%%%%#%@%%%%%%%%%%@%@%@@@@%@@@@@@@@@@@@@@@@@
%%%%#%###%#%#####****++::::::::++++*****#****+*+*++:+++++++:+++++*:++:::::+:::::::++++++*++++**++++*+++++*++*++++++++++*++++++++++++++:+:++++++++*+++++++++++++++++++++++*++++++++++++******+*******+***#****#**###*#####*##*#**#*#*########*###%#%#%#%%#%%#%@%##%#%%%##%#%#@#@%@%@%@@@%@@@@@@@@@@@@@@@@@@@@
%%%%%%%%##########***++:::::::::+++++***********+++++++++++++++++++++++::::+:::::+::+++++++++**++++++++++*++*++++++++*+++++++*+++++++++++:++++++++++++*+++++++++++++++++++++++++++++++++++*+*+********************##*#*#*****#******########%####%###%%%%%%#%%#%%%%#%%%%%%#%@%%@%%@@@@@@@@@@@@@@@@@%@@@@@@@@
%%%#%%%###%#######****++::::::::::++++********+*+++*:*++++++:+++++++++++:::::::::++::+++++++*+*++++*++++++**+++++++++++++*++++*+++++++:::::++:++++++++:++++++++++++++++++++++++++++++++++++*++*+++++***************#*#*##****#**###########*######%%%%%%%%#%#%%%%%%%%%%%%%%%%%%%%@@%@@@%@@@@@@@@@%@%@@%@@@@@
%%%#%####%@######*#***++::::::::::++++**+******++++++++++++*++*+++++++++++:+++:+:++++++++++++++++++:+++++++*++++++++++*+*+++*+++++++::+++++:+::++++++:+:+++++:+:++:+++++++++++++++++++++++*+++++**+**+***********##*#*#*#*#**#******###*#####*%#####%#%#%%#%#%%#@#%%%%%@%%#%%%%@%%@%@@@@@@@@@@@@%@@@%@@@@@@@
%%##%%##%##########***++:+::::::::++*+*+***+*+*++++++++++++++++++++++++++++++:+:+++::+++:*+**+++++++++++*++++++++++++++++**+++++++++++++++::+:::+:++:++:++:::+::+++:+++::++++:++++++++++++++++++++++++*++******+*********#*#***#****##*#########%%#%%%%%%%#%#%%%%#%%%%%%@%%#%%%%%@@@@@@@@%%@%@@@@%@@@%@@@@@@
%%%%%#%%##%%#%#####***++::::::::::++:+++*++*+**+++++++++++++++*+++++++:+++++:+:+:+:++++++++++++++++++++++++++*+++++++++++++++++*+++++:+:+:::::::::+:::::::+++:::+::+++:+:::++:+++:+:+:+++++++++++*++++**+*+******#+**#**#*#********##*###########%#%%%%%##%##%#%%%%%%%%%%%#%%%%@%%@@@@@@@@@%@@@@%@@@@@%%@@@@
%%%%#%%%##%#######%#***:+:::::::::::++++++*+++++++++:+++:+++:+++++++++:+++++:++:++:++++++*++*++++++++++++++++++++++++*++++++++++:+++++++:::::+:::::::+:::+::::+::+:::+::++++++:++++:+::+:++:+++:+++++++++++************#*#***#**#*#############%%#%%%###%%%%%%%%%%%%%%%%%@%%%%@%@@%%@@@@@%@@%@@@@%@%%@@@@@@@
%%%%%%##########*###**++++::::::::::+++++++*++++++:++++++*+++++++++++++++++::+++:++:+++:++++++++++::+++++++++*++++++++++++++++++:+::::::::::::::::::::::::::::::::::+:+:+:::++::+++:+++++::+++++++++++++++++++*********#*#**##*#*#*#*#**##*##%##%#%##@##%%%%#%%%#%%%%%%%%%@%@%%%%@%@@@@@@@@@@@@@@@@%@%@@@@@@
%%#%%##%%%###%####*#****++:::::::::::+++++++++++:++++++++*+++++++++++++++++++++:++:++++++++++++++++:+++++++++**++++++*++++:+++++++::::::::::::::::::+:::+::::::::::+::+:+:+:+::+:::+:++++++++++++++++++++++*++**+**+****+**#**#*###***#*#*#######%######%%%%#%%#%%%%%%%%#%#%%%%%@@@%%%@%@@%@@%@@%%@@@%@@@%@@
%%%%%#%###########*##**+++:::::::::::+++++++++++++++:+++++:++++:++++++++++:++:++++:+++++++++:*++++:++:++++++++++++++++++++++++++::::::::::::::::::::::::::+::+::::::::::::++:+:+++::+++:++++:::+++:++++++++++++++***********#*#*#**####***##%########%###%#%%%%%%%#%%%%%%%%%%%%@%%%%@@@@%@@@@@@%@%%%@@@@@@@@
%%%##%%%%#%#######******+++::::::::::+++++++*++++++:+::++++++++:++:+++:+++:+++:++:+++++++++++:+++++::+++++++++++++++++++++++++:::::::+::::::::::::::::::+:::::+::::+:+:+:+::++::::+++::+:++:+:+++++:++++++++++++*++***********#*****####*#***######%#%%#%#%%##%%#%@%%%%%%@%%%@%@%%@@%@@@@@@%@%%@%%%%@@@@@@@@
%#%%%#%%##########*##**+*++::::::::+::+:+++++++++++:+:+:+:++++:++:+:+++++++++:+++++++++++++:++++::+:+:+:+++*+++++++++++++::::+:+::::::::::::::::::::::::::+::::::::::::::::+++:++:+:++::+++:+++:++++++:++++*+++++++++*+******#****#*##*#**###*#####%%#%#%%%%%%#%#%#%##%%%%%%%%%%%%@%@@@@@@%@%%%@%%%@%%@@@%@@
%%#%%#%##%########*****+*++::+::::::+:+++++++++++:+++:++:+:+++:+::++:+++++++++:++++:++:++++++++++++:+:+++++++++++++:++::++:::::::::::::::::::::::::::::::::::::::::::::+:+::::::+:+:+:::++:+:+++++++++++++++++++++++++*+*+****#**#**##**#############%%%%#%%%%%#%%%%%%%%#%%%@%%%@@%%@%%@%@%@%%@%%%%%%@@@@@@@
%%###%%##%##########*#**+++++::+::+::+++:+++++++:+::++:::++++:+++++:++++++++++:::+:+++++++++++:+++:::::+++:+++++++++++::::::::::::::::::::::::::::::::::::++:::::::+::::+:+::::+::+:++:+++++++++::+++++:*:+++++++++*+*+*+*+***+**##**#*##***##**######%%#%#%%@%#@%%%%%%%%%%%%@@@%%@@%@@%@%%%%%%%%%%%%%%%@@@@
%%#%%%##%#######*##**#*+**++:::+:++:++++++++++:++:+++:::+:++++:+::+++++++++++:++++++++++++++++++::+:+++++++++++:+:++:::::::::::::::::::::::::::::::::::::::::::::::::+:::+::::++::+:::++:+++:+:+:++:++++++++++++++++++*+++*********#*#**#*##########%%%#%%%%%##%%%#%%#%%%%%%@@%%%@%@%@@@%%@%%#%%%#%@%%@@@@@@
%%%#%%#%###%#####*#*##**#++++++:+::++++++:+++++++:+:::::+:++:++:+:+:+::++:+:+:++:+++++++++++++++::++++++++++:++++:++:::::::::::::::::::::::::::::::::::::::::::+:::+:::::+::+::++:+++::++:++++++:+::++:++:+++++++++++++*++++********#**##*##*#*#######%%##%#%##%%%%%%%%%#%%%%#%@@@%@@@%%%%%%%%#%%%%%%%%%%@@@
%%%####%########*##**#****++++++:+++:+++++++++++:+:++::++:+::++:+:++::++++++++:+++:++++++++++++++:+++++:+++++++::::::::::::::::::::::::::::::::::::::::::+::::::+::::::+:+:+:+:++:+::::++++++:+++:+++++++++:+++++++++++++++**+**+*#**#**#*##*##########%%%%%##%%#%%%%#%%%%%%%%@@@@@@%%%@%%%%###%%@#%%%%@@@%@
%%#%%%##############*#*****+*++++++::++++++++++++:::+:+:::+::+:++:+++++++:++++:++:++++++++++++++++++:++:+++:+:++:::::::::::::::::::::::::::::::::::::::::+::::::::::::::::::+:+:++++::++++:+++:+++++++++++++++++++++++++++++++*+********#*###########%%#%#%%%%##%%%%#%%%%#@%%%@%%%%%%%%%%%#%%#%%%%%%%%@%@@@@
%#%##%#%#######*###*###******++++:++:+:+++++++++:++:::::+::+:::+:++++::++++:+:+:::::++:++++++++++++:++::+::+:::::::::::::::::.::::::::::::::::::::::+:::::::::::::::++::+::::+:::::::::+::++++::++++++*:+++++++++++++++++++++*+++*****####*#*##*###%%#%###%#%%%%#%%%@%#%#%%%%%@@@%%@%%%%%#%######%%%%%%%@@@@
%%#%%%#%#############*##****++*++++++:+++++++++++::+:::+:++::++:+:++++:+++++++++:::+:+++++++++++::++:::++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:++:+:::++:+:+++:+++:++:+++++++++++++++++++++++++++++++**+******#***######%###%#%%#%##%%%%%#%%%#%%%%%@%@%%%%%%%%%####%##%%%%%%@@@@@@@
%%%%%%#####%########*#*******++++++++++++++++++::+:+::::::+:+++++:++++++++:+++:++:+++::+++:++++++++::+:::++:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++:++::+:::++:+::::+++:++++++:+++++++++++++++*++++++++++*+++******#*##*##########%#%%%###%%%%%%#%%%%%%%%%%@%%%%#%#######%#%%%%@%%%%%@@
%%#%*%#####%#######**##*****+*+++++++++:+++:++++:::::::++:++::+:++++++:+++++:++++:::++++:+++++:+:+:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:::+:++::+++:::++:+:+:++++++:++:+++:+:++++:+++++++++++*++++++*+*********############%###%%%%%%%#%%%%%%#%%%%%#%%#%%%#####%%@%%%@%@@%@%@@
%%%%%#%###############**#*****+++++++++++++++++::::::::::+:::++:+:++:+++++++++++:::+:+++:+++++++::+:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++:++++:+:+:::++:++:++:+++:++:++++++++++++++++++++++++++++++++*++**+*****#***########%###%%%%%%%%%%%%%%%%%%%%%%#%%#%#####*##%#%%#@@%%@@@@@
%%%%%####%%#%######*##*#**#****+*+++++++++++++:+++:++::::::+:+::+:+++:++++++++++:+:+::::+++++++++++:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+:++++:++++::+:+:::+::::++++:+++::++++++++++++++++++++++++*+++++*++*++***##**#######%###%#%%#%#%%%##%##%%%%%%%#%%#####%#####%%%%%%%@@%%%@%@
%%%#%#%%##*####%#*####*********+++++++++++++++++::::::::::::+:+++:+:+:+:++++++++::+:+++++++++++:++:+::::::::::::::::::::::::::::.:::::::::::::::::::::::::::::::+:++:+:++++:+::+++:+++:+++:+++:++++++:+++++:+++++++++++++++++*++++++++*******#*#*#############%@##%%###%#%%%%%%%%%%%########%#%%%%@%%%%@@%@@
%%%%%#%########*#######***#******+**+++++++++:+++:++::+:+:::++:+:+++:++:+:++++++++:+:+:++:++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++:++++++:+:+::+:++:++:+:++++::++++++++++++++++:+++++++++++++*++++*++*********#####*#######%%#%##%#%%%%%%%%#%#%#%########%#%%%%%%%@%%%%@%%
%%%#%%##############*#*#***#*******+++:*++++*++++:++:::::++:::++:++++++:++:+++*++::+:+:+++++::++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++:::+++::++++:+:++++++++++++++++++++:+++++++++++*+++++*+*+*+*+#*****#*######%###%#%%%%%#%##%#%%#%%%%#%%##%###%####%%%@%@@%%@%%@%%
%%%%#%%%%############*#**#*************+**+*++++++++:+:++::+::::++++:++++:++++:+++++::++++++++:+:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++++:::::+::++::++:+:+++++:++++++++++++++++++++++++++++++++++**+*+*****#*#############%#%%#%#%%#%%%%####%#######%%%%%%%%%%%@%%%@%%%
%%%%####%%########*#####*************+*+++++++++++:+++:+:+++:++++:+:++++++++++:+:+:+++++:++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::::::++++++++++++:+:+++:++:+:++:++:++++++++:+:+++++++++:+*+++++++++++++++++*++******#**#######%#####%%####%####%%#%%##%#%######%%%%%@@@%%%%%%%%%
%%#%%##%##########***##+#***+****************++++++::++:+:+:::++:++:+++++++++++:+++:+++:++::+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++:++:+::+:+++:++++:++:++:+++++++++++++++++++*++++*+++++*+++*+*+****+***#**######%#############%#%##%##%%#%##%%%%%%%@%@%@@@%%%%%%%%
%%%%#%##%#%#######*##************************+++++:++:++:++:+++++:+++++:+++++:+++:++++++:+:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++:++++:++::::::++++:++++:+++++++++++++++++++++++++++++++++++++******#**#*###%##########%%##%%%##%%%%##%%%#%%%%%%%@%%%%%%%%#%%%
%%%#%#%#%##%%########**********+***************++++:++:+:+:+:++:++:++++++:++:::++++++:+++:+::::::::::::.:::.::.:.::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++:+:++:+++:+++++++:+:::++:+:+++:+++:++++++++++++++*+++++++++*++*+******#**#####*####*#######%%#%#%###%#%%%###%%%%%@@@%#@%%%%%%%#%
%%%%#%#%############****++++++++++**+*********+*+++++++:+::++:+::++++++++++++++::+++++++:++::::::::::::::::::::::.::.::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++:+++++:+:++++++++++:+++++++++++++++++++++++++++++++*+*+*+++*****+****###############%#%#%#%%%%#%%%%%%%%%%%@@%%@%@%%%#%#%%#%
%%%#%%##%##%%#######******++++++++*++*********+*++++++++++++:++:+:+:++++:++:+++++++++:++:+:+::::::::::::.::::::::::::::::::.:::::::::::::::::::::::::::::::::+:++:+++++++++++++:::++:++++:+:++++++++++::+++++++++++++++++++++++++++++++*++*+*++********###########%####%#%%#%%%#%#%%#%%%%%%@@@%%%%%%%%%%%%%%
%%%%%#%###########%******++++++++++++*+**+******+*++++:+++++::+++++++++++:+:+++::+::++:++::::::::::::::::::::::::::..::::::::::::::::::::::::::::::::::+::::+:+:++++++++++++:++++:+:+:++++:++:::+++:++++++++++++++++++:++++++++*++++++++++++**++**+*#**################%%#%#%#%%#%%%%#%%@@%%%@%%%%#%%##%#%%%
%%%%###%############*****+++:::::+:++++++*+++**+*++++++++++:+:+:+:++++++++:+:++++++::++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::++++++++++++++++++++::++:+:++:++:+:+++:+++++++++++++++:+++++*+++++++++++*+++**+**+*******##############%%#%#%#%##%###%%%%%@@%%@%%@%%%%%%#%%%%
%%%%%%%#%%####%#####***++++::+::::::+:+++++++*+++++++++++:++++:++++:+++++:+++++::++:++:::::::::::::::::::::.::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++:++++++++++::+:++++++:+:++++++++++++++++++*++++++*+++++*+*+*++*+**+****#########%#%##%%##%%%#%%%%%%%@%%%%@%%%%%%%%%#%%%##%%
%%%#%%%##%##%#######****+++++::::::::+::++++++*+++++++*++++++::+:++:++++:++:+++++:::::::::::::::::::::::::::::::::::.:::::::::::::::::::::::::::::::::::++::+++++++++++++++++++++++++++:+++:+++++++++++++:+++++++++++++++++++++++++++++++*++++*+*********############%##%%###%#%%%#%%%%%%%@%@%%%%%#%#%#%##%%
%%%%#%#%%###########****++:++::::::::::::++++++++++++++++++++++++++++:+:+++:+:::++:+::+::::::::::.::::::::::::::::::::::::::::::::.::::::::::::::::::+:::++++++++++++++++*++++++++++++++++++++:+::++++++++++++++++++++++++++++++++:++*++*++*+**+**+******########%#####%#%%%#%#%%%%%%%%@@@@@%%%%%%%%%%%%#%%%
%%%%%##############*****+++++:::::::::::::++++++++++++++++:++++:+::++:+::+:++:+:::+::::::::.::::.::::::::::::::::::::.::::::::::::::::::::::::::::::::+::+++:+++++*++**++++*++*++:+++++++:+:++:+++++::++++++:+++++++++++++++++++++++++++*+++*+*++***+***########%#%###%###%%##%%%%%%%%%%%%%%@%%%%%%%%%#%##%%
%%%#%%%#%%##%#%######****+++:::::::::::::::::+++++++:++++++++:++++:++:+:+++::+:+:+::::::::::::::::::.::::::::::::::::::::::::::::::::::::::::::::::::::::++++++++++*++++++***+++++++++++++::++++:++++++++++++++++++++++++*++++*++++++++*++*++*+****+*******###%######%#%%#%#%#%%%%%%%%%@@@@%%%%%%%%%%##%%%%%
%%#%%%###%##%########***++++++:::::::::::::::::+++++++::+:++:+++:::++::+:+++:++::::::::::::::::::::::::::::.:.:::::::::::::::::::::::::::::::::::::::::+:+++++++++*++*+++**+++*+++++*++++:++++++++++++++++++++++++++++++:++++++++++++++++*++*+++*++**********#######%##%##%##%%%%%#%@%%@@%%%%%%%%%%######%%%
%%%%#%#%##%#%###*#***#*****+++::::::::::::::::++::+:::++++++++:++:::+:::+++++:+:+::::::::::::.::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++++++++++*+**++*+++*++*+++++++++++++++++++++++++:+++++++++++++*++++++++*++*+++*+**++************#*####%#%%#%##%#%%%%%%%%@@@%@%%%@%%%%%##%%%%#%%%
%%%%%%##############*#****+++++::::::::.::::::::::+++:+++++:+::::+:::::+:++::::::::::::::::::::.:::.:::::::::::::::::::::::::::::::::::::::::::::::::+:::+++++++++++++++++++++**+*++++++++++++:+++++++:+++++++++++++++++++++++++++*++*++*+++++*+*****++******########%#####%#%%%%%%%%%%@%%%%#%%%%%%%%%#%%%#%
%%%%###%##%#########*##******+++::::::.:::::::::::+::+:::+:+:++::::::::::+:++:::+::::::::::.::::::::::::::::::::::::.:::::::::::::::::::::::::::::::::++++++++++++++++++++++***+*+***+++++++++++++++++:+++++++++++++++++++++++++*+++++++++*+++*++++*+**+***##**##############%@%%@%@%@%#%%%%%%%#%%#%%%%#%%%%
%%#%%#%#############*******++++++::::::::::::::+++:::::::::+:++:::::::+:::+::::::::::.:::::::::::::::.:::::::::::::::::::::.:::::::::::::::::::+::::+:+++++++++++++++++++++++++++*++**++*+++++*++++++++++++:++++++++++++++++++++++++++*++++++++***************#*##%##%#####%#%%%%%%%%%%@%#%%%%%%%%%#%#%%%#%%
%%##%%%#%#%########*#**#******++++::::::::::::+:::::::+:+:::++:+:::::::+:+::::::::::::::::.::.::..::::::::::::::::::::::::::::::::::::::::::::::::+:++++++++++++++++:++++++++++*+*+**+++++++++++++++++++++++++++++++++++++++++++++*+++++*+*+*++*+***+********###*##########%##%#%%#%%%%%%%%%%%%%%%%%%%%%%%%%
%%#%#%#%###%%########*#*#****+*++++++:+::::::::::::+:::::+::+:+:+:+::::++:::::::+:::::..::...::::::::::.:::::::::::::.:::::::::::::::::::::::+:+:++++++++++++++++++++++++++++++*+#*++++++++++++++++++++:++++++++++++++++*+++++++:++++++++++++**++**************############%%%%%%%%%@%@%%%#%%%%%%%%%%#%#%%%%
%%######%##%#########*#**********++++::::::::++::+::::::::::+:+::+::::::+:::::::::::.::::::::.:::::::.:::::::::::::::::::::::::::::::::::::::::++++:++++++++++++++++++:++++++++*****+*+++++++++++++++++++++++++++++++++++++++*+++++++++*+*+**++*+*++************#########%###%#%%%#%%#%%#@%%%%%%%#%%%#%%%%%%
%#########%###%##*###*************++++:+++:+:::::::+::::::::::+:::+::+:::::::::::::.::..::.:.:::::::::::::::::.::.:::::::::::::::::::::+:::::++:++++++++++*+++++*+++++:+:+++++**+++*****+*++++++++++++++++:+++++++++++++++++++++*+++++++*++*+*+**+***************#############%#%@%@#%%%%%%%%%%%%%%%%#%#%%%%
#%#######%###########******#******+++++++:+:+:++++::::::::::::+::::+::+:::::::::::::::..:::.:::..::::::::::::::::::::::.:::::::::::::::::::::::+:+++++++*+++++*+++++:++:++++++++**+*++*+*++++++++++++++++++++:++++++++++++++++++++++++++++++**+++*++**+***+********####%##%####%%%%%%%%#%%%%#%##%##%%%#%%%%%
#########%###########*****#*********+++++++++++:::::::+:+:::::::::::::::::::::::::::.::..::.::.::::.:::::.::::::::::::::::::::::::::::::::::++++++++++++++++*+++++++++++++++++++*+*+***+++++*+*+++++++++++++++++++++++++++++++++++*+*+++**+++++***+**++*********#*########%#%##%%%%%%%%%%%%%%%%%%#%%%%#%%%%%
##################*###*##**#*********++*++++++:+::+:::::::::::::+:::::+:::+::::::::.:::::..:::::::::::::::::.:::::.:::::::::::::::::::::::::+:::+++++++++++++++*+++++::+:+++++***+*+++*++*++++++++++++++++++++++++++++++++:+++++:++++*++*+*++*+*+*+++*++#*+*****#*####*####%#%#%#%#%#%%#%%%%%%%%%%%%%%%%%#%%
###***##############*##*##***********++*+*++++++++::::::::++:::+:::::+:+:::::::::..:.:.::::.::.:::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++++:+++++++**+**++++*++++++++++++++++++++++:++++++++++++++*+++++++++*+***++******+***********########%#%%%%##@%%%%%%#%%%%%%%%%%%%#%%%%
##***###%%#########**##***************++*+++++++++::::::::::+:::+::::::::::::::::.::.:..:.::.:::::::::::::::::::::::::::::::::::::::::::::::::::++:+++++++++*+++++++++++++++++++*+++*+*+++++++++++++++++:+++++++++++++++++*+++++*+++*+++++++**+*+**+****+**+******#**#######%#%#%%%%%%%%%%%%%%%%#%#%#%%#%%%%
#*#****#########*##*####****##**********++*+++++++::::::::+:+::::+:::::::::::::::::.:..::.::::::::::::::::::::::::::::::::::::::::::::::::::::++:+:+++++++++*+++++++++++++++++++++**+++++++*++++++++++++++++:++++++++++++++:++++*++++++++*+*+*+++*+*++************#*########%#%%%%%%%%%%%%%%%%%%@#%#%#%%%%%%
##******#%#########**###*********#****+**+++++++++++:::::::::::::++::+:::::::::.::::::.:.:.:.:.::::::::::::::::::::::::::::::::::::::::::::::+::::::+:++++++*++++++++++++++*+++*+*++++++++++++++++++++++++++++++++++++++++++++++++++++*+*++*+**+*+*+****+*+*+******#*#####%%%%%%%@%%%%%%%%%%%%%%%%#%%%%%%%%%
##******#####%#######****##**************+++*++++:+::::::::::::::++:::+:+::::::::.:.:...:.::.:::.:.:::::::::::::::::::::.::::::::::::::::::::::::::+++++:++++++++*+++++++*++*+**+++++++++++:++++++:++++++++:+++++++++++++++++*+++++++*++*+*+++**+**+++***+******+#***######%#%%%%%%%%%%%%%%%%%%%%%%#%#%%%%%%
#*****+**###%######*###*****#****++*+**+++*++++++++:+::::::::::::::+::+::::::::::.:.:::..:...:.:::::::::::::::::.::::::::::::::::::::::::::::::::::::++:+++++++++++++*+*++++*++++*++++:++:+++++++++++++++++++++++++++++++++++++++++++*+++++++**+**+**+********+#****########%#%%%%%%%%%%%#%%%#%%%%%%#%%#%%%%
##***++**############*###******++*++*+++++++*++++::+::+::::::::::+:::::::::::::.:::::::.::::::.:::::::::.::::::::::::::::::::::::::::::::::::::::::::+:+:+++++++++*++++++*+++++++++++++:++++++++++++++++++++:++++:+*+++++++++++++++++*+*+**+++++*++****+***+*******#**######%%%%#%%#%%%%%%%%@%%%%%#%%%#%%%%%
#****++*+**%########****#***++*+++++++*++*++++++::+::::::::::::::::::::::::::...:..::::.::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+:+:+++++++++++++**+++++*+++++++++++++++++++++++++++++*+++++++++++++++++*++***+++++:+++***+*++********+********#########%###%%%%%%%%%%#%%##@%%%%#%%%%%
#***++++**#######*#********+**+*++++++++++++++++++:::::::::::::::+:::+:::::.:.:::::::::::.:::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++:++++*+++**++++*+++++++++++:+++++++++++++++++++++++++++++++++++++++++++++*+++*++***+********+*+**********#####%##%%%%#%#%%#%%%%%%%%#%%%%%%%%%%%%
***+++++*+*#######*#*****++++++++++++++++*+++++++:++::::::::::::::++:::::::::::::.:.:..::.:..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+++++++++++++***++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++++++*+**++++**+***+***************#######%####%%%%%%#%%%#%%%%%#%%%%%%%%%
**+++++++++***#*##******+*++++++*++++++++++++++++++::::::::::::+:::::::::::::::.:.:::.::..:::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::++++++*+***++*++++++++++++++++:++++++++:++++++++++++++++++++++++++*+++++*+*+++++*++*++**+***+***************#########%#%##%%%%%%%%%%%%%%#%%#@%%%
#**++++++++****#*****++++*++++++++++++++++++*++*++++:::::::::::::::::::::::::.::..:::::::.:::.::..::::::::::::::::::::::::::::::::::::::::::::::::::+:::+:++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*++*++++**+++++*+++++++++++++*+***+****************########%#%%%%%%%%%%%%%#%%%%%%%%%%%%%
#**++++:+++++*******++*+++*++++++++*+++++++*++++++++:+::::::::::+:::+::::::::::::::.:..:.:::::::::::::::::::::::::::::::::::::::::::::::::.:::::::::::::+::++::++++++++*+++++++++++:+++++:++:++++++++++++++++**++*++++*+**++++*+++*++++++*++++++**++*++****************######%#%%#%%%%#%%@%%#%%%%#%%%%%#%%%%
#**+++:+:+:+++**+*++++*++*+++++++++++++*++++++*++++++:::::::::::::::::::::::::.:..:.:.::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::::::+:++++:+++**+++++++++++++:++++++++++++++++++++++*++++++*++++**++*++++++++++*+++++*+++********+***+**********#*######%#%##%%%%%%%%%%%%%%%%%%%%%%%%
#**++:::::+++*++*+*++++++++++++:+*+++++++++++++++++++:::::::::::+:::::::::::::::.:..:::.::.::.:..:::::::::::::::::::::::::::::::::::+:::::::::::::::::+:::::::++++++++++++++++++++++++++++++++:+++++*+*+++*+++**+*+++******++*+**+*++*++*+++**++**++***+*+***********#**######%#%#%%%%%%%%#%%%#%%%%%%%%%%%%%
#***+:+::::+:+++++++++++++++++++++++++++++++++++++++++++:::::+::+::::::::::::.:::.::::.:::::::::::::::::::::::::::::::+::::::::+:::+:+::+::::::::::::::+:++::+:++++:+++++*+++++++:++++++++++++++++++++++++**++**+*******+*****+***+*+**+*+**+**************************#########%#%%%#%%%%%%%%%%##%%%#%%%%%%
##*++++:::::+++++++++++++++++++++++++++*++++*+++++++++:::+::::::::::::::::::::::.:.::::...:::::::::::::::::::::::::::::+:::+:++:::::+:+:+::::+::::+::+::::::++:::+++++++++++++++++:+++:+++++:+++++++++*+*+++*********************+***++++*++***+*++**+**+****************##*####%##%%##%##%#%%#%%%@%%%%%%%%%
###*+++:::+::++++++++:+++++++++*+++++++++++++++++++++:++:::::+::::::::::::.::.::::.::..:.:::.:::.::::.::::::::::::::+++:++++++:+++++:++::++:++::+:::::::+::+::+:::+++++++++++++++:+:+:++:++++++++++++*++*********#***********+**********++*+*++****+*+****+***************######%#%##%%%%#%##%%%%%#%#%%#%%%%
##***++:::::++++++++++++++++++++++++++*+++++++++++++++::+:::+::::::::::.::::::::.::..::.:.:.:::::::::::::::::::::+:::+:++++++++++++++++++::+:+:+::::::::::+::::+:+++++++++++++:++++++++:+++++++++++***********************************+**+**+*+**********+*********+#***#*#######%###%%###%#%#%###%%%%%%%##%
%##*++++:++:+::++++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::.:.:::::::::::.:::::::+:++++++++++++++++++++++++++++++++::::::+::::++:+++:++++++++++++++:+++++++++++++++*+******+***********************#****+****+**+****+**++*+***+*************#*####%#%#####%#####%%%##%%%###%##
%##**+++::+:++++++++++++++++++++++++*++++++++++++:+:++::::++:::::::::::::..:.:.::.:.::::::.:...:::::::::::+::+:++:+:+:++++++++++:+++++++++++++++++::::::+::::+:+::+:+++++++++++++:+:+:++++++++*++*+**************#********#******#*********+*+*+*+++******+**************#*######%#####%######%%##%%%%%%%###
%%#***++++:++++++++++++++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::.:.:::.::::::::::::::+:++++++++*+++++++++++++++++++++++++++++:+++:::::::+::+++++++++++++:+++++++++++++++++**+***+**********+****#************#****************+*********************#*##%###%########%##%%%#%%%#####*#
%%##**+++++++++++++++++++*++++++++++++++++++++++++++++::::::::::::::::.::.::::.::::::::::::::::::::::::::++:+++++++++++++++++++++++++*+++++++++++++++:::+:::++:+:+::++++++:++:+++:+++++++++++*+*+*******+*****+**********************************+***++***+****+****#*****#*#############%#%#%%%%####%%#####
%####**++++:++++++++++++++++++++++++++++++++++++++++:+:::::::::::::::::::::::::.:.:.:.:...::::::::::::::+:++++++++++++++++++++++++:++++++*+++*+++++++++++:++::++::++++++++++++++++:++::++++**+*********+****+****++*+*****#***+#******#*********+*****+*********#**********##############%####%##%##########
%%###***+++++++++++++++++++++++++++++++++++*++++++++::::+::::::::::::::::::::.:::::.:::::::::::::::::::::++++++++++++++++++++++++++++++++++++++++++++++++:::::::+:++:++:+++++++++:++++++++*++**************++**+****+***++***********#*************+**********************###################%#%#%#%%#######
%%%#*#***+*++:++++++++++++++++++++++:+++*++*+++++++++:+:::+:::::::::::.::::::::.:::::::.::::::::::::::+::+:+++++++++++::::+++:+:+++++++++++++++++++++++++++:+::::++++++++++++++++:++++*++*++++*++***+***+*++++++*++**+*+**+******************#*******+*****+*+**************########%###%%###%#%%%%#########
%#%###****+++*+++++++++++++++++++++++++++++++++++++++:::::::+:::::::::::::.::::::.:::.:::.::::::::::::::+++:+++++++++++:++::::::+:+++++++++++++++++++++++++::+:::::+++:++++:+++:+++++++*++*+**+***+++*+*+*+++*+*++*++++*+**+*+************#**********+***********************########%%###%%%#%#%#%#%#######
%%#####*******+*++++++++++++++++++++++++++++++++*++:+++::::::::::::::.:::::::::.:::::..::::::::::::::::::++:+:++++:+::::::+:+::++:++:+:+:++++++++++++++++++++::::+:+:+:++++++:+:+:++++*+++*++*+*****+++++++++++++++++++++*+*+**+*****************************+******#********##*######%###%##%%%%###########
%%%%%####****++++++++++++*+*+++++++++++*++++*+++++++++::::::::::::::::::.::::::::::::::.:::::::::::::+:+++++::+:::+:::::::+:+:::++::::+++++++++:*+++++++++++++:+::++:++:+++++:+++:++++++++*+***++++*+++++++++*++++++*++++++**+*+++**+*+******#*********+**+*+**********+#***#######%######%%#%%##%##########
%%%##%#####*****++*+++*+++*++++++++++++++++++++++++++:+:+::::::::::::::::::::::.::.:::.:.::::::::::+::+++++:+:+:::::::::::::::::::::::+::+:+++++++++++++++++++++:+:::++++++:++:+++++++*++++**+**+++++++++++++++++++++++++++++*+*+++++*********************+************#******#######%%####%%##%%##%###%#%##
%%##%##%##***********+++++*++++++++++++++++++++++++::+:+:+::+:::::::::.:.::.::::::::..:::.::::::+::::+:::+:::::::+:::::::::::::::::::::+::+:++:++++*++++++++++++::::++::++:+++:+++++++*+*+*+*+*+++++++++++++++++++++++++++++**++*++*+++***************+****+***********#**#**###########%##%#%%%#####%######
%%#%%#####*#*******+++*++*++*++++++++++++++++++++++::++::::::::::::.::..:.:::::::::.:::::::::::::::+::::::+:::::+::::::::::::::::::::::::::+:++:+++++++++++++++:++:::+:++:++++++:++++*+++*++*+++++++++++++++++++++++++++*+*+++++++*+*+*+********#***+************************##########%%#%%##%%%%####%###%%
%%#%#########************+******+*++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::+:::+::+:::::::::::::::::::::::::::::::::::+::++++++++++++++++++++++:++:+++++:++++++++++++++++*++++++++++++++*+*+++*+++++++*+*++#++*+++*+******************************+*****##########%%#%#%%#%%#%#%%%%#%%%
%%#%%###%#######*#************+******++*+++++++++++:::+:::::::::::::::.:.::::::::::::::::::::::::::::::::::::::::::::::::::+::::::::::::::+:::::::+++++++++++++::+:+:::++::+:::++:++++*+++++++++++++:+++++++++++++++++++*++*+++*+++++++++*+*+**+*********+***************#+##*#############%#%%###%#%###%%%%
%%%#%%###%#####***#*********************++*++*:*++:::::::::::::::::::::::::::::::.:::.::::::::::::+:::::::::::::::::::::::::::::::::::::::::::::::++++++++++++++++++::+::+::++++++++++++++++++++++++++++++++*+++*+*++*+*++*++++*++**+++*+****+*******************************############%#%###%##%%%%%%%%%%
%%%%#####%#####*###**#**##**#***********++*++++++++::::::::::::::::::.::::::::.::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++:++:+:::+::+++++++++++*+++++++++++++++++++++++*++*+*+*******+**++**++*++****+******************************#########%####%#%%%%%%#%%%%%%%%
%##%%%###########*##****************+*+**++*+++++::::::::::::::::::::::::::::::::::::::.:::::::::::::+:::::::::::::::::::::+::::::::::::::::::::+:+:++:++++++++:++:++:+:+++++++++++++*+*+*++++++:+:++++++++++*+**++*++*+**+*+*+*++*+++**++++*+*********+**+***+#*****#+*******#########%%###%#%%%%%%%%%%%%%%
%%%%############*##**************++***+++++++++++::::::::::::::::::.::.:::::::::::::.:::.::::::::::::::::::::::::::::::::+:+::+:::::::::::::::::::::+++++*:++++++++:++++:+:+++++++++++++++++++++++++++++++++++++*+****+*+*+******+*+*++*++++++****+********+*********+*********####%#######%%#%%%%%%%%%%%%%%
%%%#%%##%#*######***#****++***+*++++:+++++++++++:+:+::::::::::::.::.::.:::::::::::::::.:::::::::::::::::::::::::+::::::::++:::+++::+::::::::::::::::::++:+++++++++++:+:+:+++:++++*++*+*+++++++++++++++++++*++*+***++*+*+#+******+**+++*+*++*++*+*****+**+*+*******************#**##########%#%%%%%%%%%%%%%%%
%%#%%########*#******+***+++++++++++*+++++++++++++::::::::::::::::.::::::::::::::::::::::::::::::::::::::::::::::::::+:::::++::+:::++:::::::::::::::::::++++++++++++++:++:++:++++++*++++++++++++++++++++*++*++***+***+**++*+***+*+**+*++*++*+*+*******+******+**************#**#####%#####%##%%%%%%%%%%%%%%%
%%%####%#####****+*+++++++++++++++++++++++++*+++++:+::::::::::::::::::::::::::.:::::::::::::::::::::::::::::::::::::+:++:+:++:+++:++:::::::::::::::+:++:++++++++++++::++:+++++++++++++++++++++++++++++++*+++++*+*********+**++****+*++********+*+**+*+*******************#*****############%##%%%%%%%%@%#%%%
%%%#%##%###****++++++++:+++++++++++++++++++++++:++:::::::::::::::.:::.::..::::::::::::::.::::::::::::::::::::::+:+:+:+::++:++:+:++:::+++::::::+::+:::::++++++++++:++++::+:+::++++*+++++++++++++++++++++++++*+*+***+*+***+****#+**+*+++**+***+***++**+**********+****************###########%%%#%%%%@%%##%##%
%%%######******++++++::++::+:+++:+++++++:+++++++++:+:::::::::::::::::.:::::::::::.::.::.::::::::::::::::::::::+:::+::+:++::::++::+:+++:::::::::::::::+::++++++++++++++:+:++++++++*+++++++++++++++++++++++++**+**+++*++***+++*++**++****+**+**+*******++******+***+**************##########%###%%%#%%%#%%%#%#
%%%%%%###*****++++::+::::::::+::+::+:++++++:++++:+:::::::::::::::..:::::::::::.:::.::::::::::::::::::::::::::::::::+::++++:+++++::+:+:::::::::::::::::::++:+++++++++++++:++:++*++++++++:+++++++++++++*+++*+++*+**+*+**+*+*+***+*+*+**+******+*++***+**+****+*********************##########%%#%%%%%%#%%%#%##
%%@%##%##*#*+++++:+::::::::::::::::++:+:+++++++++++::::::::::::::.:.::::::::.:::.::::::.::.:::::::::::::::::+:+:+::::+:+:++:+:++++:++:+::::::+::::::::+::+++++++++++++++:++++++*++++++++++++++:++++++++++++***+*++++*++++**++**********************************+****+**********#######%###%%%#%#%%#%%#%##%%#
%%%#######*+**+++::::::::::::::::++:+++++:++++++::::+::+::::::::::::::.::::::::::::::::::::::::::::::::::::::::::::+::++::+:+:::+:+::+:::::::::::::+:::::++++++++++++++:+++++++++++++++++++++++++++++++++++*+++**+**++*++++*+****************#+***+*+**+*****+*****************##########%#%##%%%%%%%%%%%%%#
%#%%#%####*#+*++:::::::.::::::::::+:++++++++++:+::+::::::::::::.:.::::::.:::::..:::::.:::::::::.::::::::::::::::++::::::+:::::::+::+++:++::++:::::::::::++:++:++++++++:++:++++++++++++++++++:++++++++++++**+++*++*++++++++*+*+*+**********#**+***********+******+***************#########%%#%%%%%%%####%%##%
%%%%#%####****+++:::::::::::::::+:++++++++++++++++::+:::::::::::::.::::::::::.:::::::::::::.::::::::::::::::::++:++:+::::::+::::::+:++:+++::::::::+::::::::+++++++*+++:++++++++++++++++++:++++++++++++++**++++*+++*++++*+**+*********************************+*+**************#**######%%%#%%%%%%%%%%#%#%%##
%%%#%#####*#**+++:+::::::::::::::+:+:+++++++++++++:+::::::::::::::::::::::::::::::::::.:::::.::::::::::+::::++++:+:+::::::::::+::++:++++:::+:::+:+::::::+::+++++++++++++++++++++++++++++++++++++++++++*++*******+++++*+*++**********#**#***********************+****************#*####%%###%#%#%%%#%%%%%%%##
%%%###%####**#*+++:+:::+:::::::::::++::+++++:++++:+:+:+:::::::::::::::::::.::::::::::::::::::::::::::::::::::+::+++:+::::::::::+::++++:+:++++:::+::+:::::::::++++++:++++:+++++++++++++++++++++++++++*++*++*+**++++***+*+*+**********####********#******+**+***+**+*************#*######%#%%#%%%%%%%%#%#%%%##
%%%####%####****++*+++:::::::::::+++:++++++++++++:++:::::::::::::::::::::::.::::::::.:..:::::::::::::+:++::++++++:::::::::+:::+:::+:+++:++++++:++::::+:+::+++++++++++++::+++++++++++++++++++++++++++++++*+*****+***+**+*******#*#**##***##***#*********+*****+*****************#*#######%%#%%%%%%%%%%%#%####
%%%%%%%%%####*#***++++++:+++++:+:++:++:++++:++++:+:+:::::::::::::::.::::::::::::.::::::::::::::::::::::+:++++:+++++++++:::::+:::+:+:++:+:+++:++:++:+::::::+:+++++++++++++:++++++++++++++++++++++++++***+*+***+****+#+******#*****#*#########*****#*******+*********+*************#######%#%%%%%%%%%%%#%#####
%%%##%##########*****++++++++:+++++++:++++:+:+:+:+:+::::::::::::.::::::::::::::::::::::::::::::::+:::++:+++++++++++++++:+++:++++++++++++++:++:+:+:::++::+::+:++++++++++++++++++++++++++++++++++++**++++++**+************+****##**#*#######*##*****************+***+***#*********#*######%%##%##%%%%%%%%%%#%#
%%%#####%#####*##*****+*++*+*+++++++++++++++:++::::::+::::::::::::.:::::::::::::::::::::::::::::+::++::++++++++++++++:+++++++++:++++++++++++::++:+++:+::::::++++++++++++++++++++++++++++++++++++++++**++*++*****************#*###########***#*****************************#******########%%%#%%%%%%%%%##%%##
%%%%%%##%###%######******+*++*+++++++++++++++:+::+:+::::::::::.:.::::::::::::::::::::::::::::::::::::+++:++++*+++++++*+++++++++++++++++:++::++:++:+:::++++:::+:++++++++*+++++++++++++++++:++++++++*++**+**++************#**#####**####*#*###**************+************#********##########%%#%#%%@%%%%%#%#%%
%%%%%##%##########*************++++++++++:+:++::+::::::::::::::..:::.::::::::::::::::::::::::::::::++++++++++*++*++++++++++++++++++++++++:+++++:++:+++:+:::+++++++++++++++++++++++++++++++++++++++++++*+*+*****+***********#*#*#*#*##*##************+***+**************+*********########%%%#%%##%%%%%#%%%##
%#%%%%%#############******#**++**+++:++:++::::+::+::+::+::::::::::.:::.::::::::::.:::::.:.::::::::++:++++++*+++*+**++*++++++++++++++++++++:+::::::+::::::::+++++++++++++++++++++++++++++++++++++++*+++++++****++**********#***####*****#**********+**************************+#**#*######%#%#%%#%%%%%%#%#%%#
%@%%%%##%#%####%####*****#*****++++++++:+:+::+::::++:::::::::::::.::.::::::::::::::::::::::::::::::++:+++++++++***+++++++++++++++++++++++++++:++++:::::+::+::+++++++++++:+++++++++++++++++++++++++++++*++++*+********#*******#**#**#*****#**************+********************#***#####*%%###%#%%#@#%#%%%###%
%%%%#%%%#########*####********+*+++++++++++:::++::::::::::::::::.:::::::.::.:::::::::::.::::::::::+:++:+++++++++++*++*+*+++++++++++++++++::+:+:::+::::+::::++++++++++++++:++++++++++++++++++++++++++++++++++**+*********#************************+***+**+****+*+*****+***********#####%#%#%%%##%%%%##%%%%#%#
%#@%%%##########%%###*##**#*#++*++++++++:++:+++::::::::::::::::::::.:.:.::::::::::.:::.::..::::::::::::+:+++++++++*+++++++++++++++:+:+:++++::::::::++::::::::++++++++++++++++++++++++++:+++:++:++++++++++++++++++**+****+*+*********#****++********+**+****+**+*************#+***########%#%#%%#%#%%%#%#####
%%%%#%####%#%###*##*##*#*******+++++++++++++++:::::++::::::::::::.::..:::::::::::::::::::::::::::::::::+:::++++++++++++++++++++++++:++::::::+::::+:::::+:+:+++++++++++++++++++++++++++++++++++++++++++++++++++++**++*+*****+*#+******+**+***+********+********************#**#**#*#####%%#%%#%%%%%%#%%%%%###
%%%%#%%##############*##****++++++++++++++++++++:+:+::::::::::.::.:::::::::::::::::::::::::::::::::::::::+::+++++++++++++++++++:::++:::::::::::::::+:::+::::+:+++++++++++++++++++++++++++++++++:+++:++++++++++++++*++*+**********+*+*+*********+***+**+*************************#*#####%##%##%%%%%%%%%%%##%%
%%%%%%%#####%#%##*#####*****+++++++++++++*++++++++:::::::::::::::::.::.::.:::::::::::::::.::::.::::::::::::++++++++++:+++++::+:+++::::::::::::::::::::::::++::+++++++++++++++++++++++++:++++++:++++++++++++++++++**+*+++++**++**********+*+**+****+****************************#########%%%%#%%%%%%%%##%%##%
%%%%%%#%##%#######*#*#*****++++*+++++++++++++++++++:+::::::::::.:.:::::::::::::::::::::::::::::::::::::::::::++::+:::++++:+:+:+::++:::::::::::::::::+:::::::+:++++++++++++++++++++++:+++++++++++++++++++++++++++*+++++++++*+*+*+*+**+********#*+*********************************#*######%#%#%%%%###%%%#%%#%
%%%%####%########*###*****+++*++++*++++++++*+++++++++:::::::::::.::::::.::::::::::::::::::::::::::::::::::::::+::+++::+:::::::::+:::::::::::::::::::::+:::::++:+++++++++++++++++++++++:++:+++++:+++*++++++++++++++++*++*+++*++**+*+*+************************************#*******#########%%#%##%%%%%##%##%%
%%%%%###%######*####*#**+*+*++++++++++++++++*+++++++:::::::::..:::::.::.::::.::::.::.:::::::.:::::::::::::::::::+:::::::+::::::::::::::::::::::::::::::::::+:+:++++++++++++++++++++++++++++++++++++++++++++++++++++*+++++++*+++*++**+*+******#**********+*************************######%#%#%%%#%%%%#%###%%%
%%%%#%%##########*##***++**+*++++++++++++++++*+++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::::::::::+++++++++++++++++++++++++++++++++++++++:++:++++++++++++++++++++++*+++++*******************#************************#**#############%%%#%%#%%%%%%
%%%#%%###%########*****++*+*+++*+++*++++++++*:+++++:+::::::::::::.:::::::::::::::::::::.:::::::::::::::::::::+::::::::::::::::::+:::::::::::::::+:::::::::+::::++++++++++++++++++++++++++:+++++++++++:*+++++++++++++++++++*+++*++*****#******#*********++*+******************#****##%#####%##%#####%%#%%%##%
%%%%#%###%########***+*+++++++++++++++++++++++++:+++:::::::::.::..::::::::::::::::.:::::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::::::+::+::+::::++++++++++++++:+++++++++++++++:++::++++++++++:+++++++++++++++*+*+******+*****+*********#****+*******************#*####%#########%#%#%%%%%%%%
%%%%####%######******+*++++++++++++++++++++++++++:+:+::::::::::..:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+:+++++:++++++++++:+++++*++:++++:+++++:+++++++++++++++*+++++++++*+**+****#+*+*******************#*+**********+********#*###########%##%#%%%#%#%#%%
%#%##%%###%%####******+*++++++++++++++++++++*++++::::::::::::::.::::::::::::::::::.::::::::::::::::+::::++++::::+:::::::::::::::::::::::::+::+::::::::::::::::::++++++:+++++++++++++++++++++++:+++++++++++++++++++*+++++++++*+*****+#***+*****************+***************+******############%#%##%%##%%%%#%
%%%##%#%########******+++++++++*++++*+++++++++++++:++:+:::::::::::.:::::::::::::::::::::::::::::+:::::::::::++::::::::::::::::::::::::::::::::::::::::+::::::+:+++++:++++++++++++++++++::++++++++++++++++++++++++++++++++++*++*********************************+*******+******#**#*#######%###%#######%%#%%%
%#######%#####****+*+++*++++++++*++++++++++++++++++::+:::::::::::::::::::::::.::::::::::::::::::::::::::++:+::+::++:::::::::::::::::::::::::::::::::+::::::::::++::++++:++++++++++++:+:++:++++++++:+++:++++++++++++++++++++**++******+*****************#**+****#************#**#*########%######%%#%%%%#%@%%
%#############***+*+*++++++++++++++++++++++*+++++:++:::::::::::::::::::::::::::::::::::::::::::::::::+::+:::+:++++::::::::::::::::::::::::::::::::::::::::::+++:+++:+:++++++++:++++:++:+++++++++++++++++++++++++++++++++++*************************#*******+***+**+**************########%###%%####%%%%%#%%#
%#%##########*******++++++++*+++++*+++*+*++++*+++++:++:::::::::::::.:.::::.:::::::::::::::::::::::+:+::+:+:::::+:+::+:::::::::::::::::::::+::::::::::::::::::::+++:+:+++++++++++:++++:+++:++++++++++++:+++++++++*+++++++++*+**********+******+*****************#+*+****#****#****#*###%########%##%%#%%%#%##
##########*#***+*+*++++++++++**+++*+++++++**+++++++:+:::::::::::::.::::::::::::::::::::::::::::::+:::+:::::::+:+:::::::::::::::::::::::::::::::::::::::+::::::+::+:++:+++::+++++++:::++::++++++++++++:*++++++++*+:*++*++*+****+****+*+*+*****+*+****#***************************####%####%###%%##%##%#%###%#
##***######****+*+*+++++++***+++++++++++++*++*+++++++::::::::::::.::::::::::::::::::::::::::::::::::::::::+:+:::+++:++::::::::::::::::::::::::::::+::::::+:::::::+:++:::+++:+++++++++++++++:++++++++++++++++++++*++++++++**************+*+*++*************+*+***********#******###*######%##%##%%%%####%#%%#
####***##*#*++****++++++++*++++*+++++++*++*+**++++++:+:::::::::::.:::.::::::::::::::::::::::::::::::::::::::+:++:::++:::::::::::::::::::::::::::::::::::::::::+:++:++++:++++:+++++++++++:+++++++++++++++++++++++++++++*+++*********++**+*+*++***************+#+******************########%#%%#%%%%%#%####%##
##****+**+******+++++++++++++++++++++*++++++:++++++++::::::::::::::::::::::::::.:::::::::::::+:::::::::::::::+::+::++:++:+:::::::::::::::::::::::::::::::::::+++:+:+++:++++:+++++:++++++++++++++++++++++:+++++++++++*++***********+*+++++**+*+*++*******+************************#*###%#%#%##%%%##%%##%#####
##**++++*******++++++*++++++++++++*+++*++++++++++++:+:::::::::.:::::::::::::::::::::::::::::::+:+:::::::::::::++:+:++++::::::::::::::::::::::::::::::::::::+:::++:++++++++::+++:++++:+++++++++++++++++++++++++++++++++*++*****+*+*+*+**++++**++**********************************########%#%#%%%%%%%#%######
#*+*++++*++**+++++++*++++++*+++++*+*+*++++++++++++:++:+::::::::.::::::.::::::::::::::::::::+::::::::::::::::::::::+:+::::+:::::::::::::::::::::::++:::::::::++::::::+:+::+++++++++:+++:++:++++:+++:+:++++++++++++++++++*+*********#+*++***+*+***+******#******+********#*****#***###*###%#%#%#%%%#%#%%######
***++++++++*+++++++++++++++++++*+++*+++++++++++++++:+::::::::::::.::::::::::::::::::::::::::::::::::::::::::+::::+:+:+:::::::::::::::::::::::::::::+::::+::+++:+:++++++++++++++++++++++++++:++:+++++++++++++++++++++++*+***++*+*+*+++*+++****+**********************#*********##*#######%%##%#%%#%###%######
***++:++::++++++++++++++++++*++++*+++++++++++++++::::::::::::::::::::::::::+.:::::::::::::::::::::::::::::::::::::++:++:+::::::::::::::::::::::::::::::::+++:::++:++++::+++++++++++++++++++++++++++:+++++++++++++++++++++****+*++*++++*++*+*+***#*****************************#*####%#####%##%%%#%#%#%######
**++++:::+++++++++*+++++++++++++++*+++++++++*+++++:+:::::::::::::::.:::::::::::::::::::::+::::::::::::::+:::::::::::+:+:++::::::::::::::::::::::::::::::::+::+:++++++++++:++:++++++++++++++++++++++++++++++++++++++++*++**+*+*+*+*++++++*++*+******#*********+*#******#***#*****#######%###%#%##%#%#########
#+*++::::+++++++++++++++++++*++++++++*++++++++++++:::::::::::::::::::::::.::::::::::::::::::::::::::::::.:::::::::::+::+:+++:::::::::::::::::::::::+::::+++:+:++:+++++++++:++++++++++++++++++:+:+++++:++++++++++++++++**+*+*+****++++*+++++*+*+**#************************#*****########%#%#%%%%%#%##%%#####
#**++:+:::+++++++*++++++*++++++**++*+**++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:::+::+::::::::::::::::::::::::::+++:++:++++++++++++++++++++++++++++++++++++:++++:+++++++++*++++++**+****++++++++*+*****+#****#*************************##*###########%##%#%%%%%####%##
#**++++::++++++++++++++++++++**++*+*+*+*++++*+++++:::::::::::::::::::::::::::::::::::::::::+:+:+:::::::::::::::::::::::++:::+:::::::::::::::::::::::+::+:++:++++++++++++++++++++++++++++++++++++++++++++:++:+++++*++++++**++*+*++++++*++*++*+***#**************+*+***+*********##########%##%##%%%%%%%%##%%#
#****+++:+:++++++++++++++*+*+*+*******+*+**++++++:+::::::::::::::::::::::::::::::::::::::::::::::+:::::::::::::::::::++:++:::++:::::::::::::::::::::::+++++++++++++++++++++++*+++++*+++++++++++++++++++++++++++++++++*++*+***+++*++*+*+*+*++*+***#*****#***************#*****#***#######%#####%%#%%%##%%%%##
##**++++++++++++++++++*+**++***#*********+++++++:+:+::::::::::::::::::::::::::::::::::::::::::::+:::::::::::::::::::::::+:++::::::::::::::::::::::+:+:++++++++++++++++*++++++++*+*++**++++++*++++++++++++++++++++++**+*+******++*+++++++*+******************+*****+****#+******#*%#########%#%%%%%%%%%%%%%%%
###**+++++++++++++++++*+++****************+++++++:+::::::::::::::::::::::.:::::::::::::::::::+:+++++:::::::::::::::::+:+:::+::+::::::::::::::::::+::+::+++++++++++*++*++++++++*+++++*+**+*++++++++++++++++++++++++*++++*+*+*+**++++++++++++********#************************#*#*#######%#####%%%%%%%%@%%%%%%
%##***+****+++++++++*+*+*++************+++*++++++++::+::::::::::::::::::::::::::::::::::::+:::::+:+::::::::::::::::::::+:+:+:+:::::::+:::::::::+:::::+::++++++*+++**++*++++++++**+*+**++**+*++++++++:+++++++++++++++++*++**+*+++*+++++++****+**#***********************#*#****########%###%%%%%#%%%%%%%%%%%%
%%##*****++*++++*++++*+*+***#*##******++++++*+++++::::::::::::::::::::::::.:::::::::::::::::::++::++:++::::::::::::::::::+::+:::::::::::::::::::::+::+++++++*++++*+++++*++++++*+++*+****+*++++:++++++:+++++++++++*+*++********++++++*+++*********#***********+*+************#**###########%%%%%%%%@%%%%%%%%%
%%####*****+*****+**+*******#*****++++++++++++++++:+::::::::::::::::::::::::::::::::::::::::::::::::+:+::::::::::::::::::+::+::::::::::::::::::::::::+++++++*+*++++++++*+**+*+*+**+*****+**++++++++++++++++++++++++*++**+***+*++*++*++*******#****************************#***#######%%%#%%###%%%%%%%%%%%%%%
%#@####***+**+**+************#***++*+++*++++*+++++++::::::::::::::::::::::::::::::::::::::::::::+++++:::::::::::::::::::+:++:+::::::::::::::::::::+::+::+++++++++++++*****+*+***++*+*++*++*+*+:++++*::+++++++++++++++*+*+*+***+*+***+#+*******#************+******+*+********#**#####%%%%%###%%#%%%%%%%%@%#%
%%%%#####***************###*******+*++++++++:++++:+++:+::+::::::::::::::::.:::::::::::::::::::::::+:::+++::::::::::::::++:::::::::::::::::::::::::++:::++++++*++*++**++*+*****+*++***+*+++++++++++++++++++++++++++++++*+***++*++*+*++******#*********+**********+***********#**#####%%#%##%#%%%%%%%%%%%%#%%%
%%%%########*#*#*****#**##*#****+*++++++++++++++++++::::::::::::::::::::::::::::::::::::::::::::::::+:+:++:::::::::::::+:::+:+::::::::::::::::+:::::::+++++++++*+++*+*+****+*+***+**++*++*++++++++++++++++++++++++++++**+*+*+**+++***********#*******+********+***************######%#%%%#%%%%%%%%%%%%%%%%%%
%%%%#%####*****#*##*##**#****+*+++++++++:+:++++*++++::++::::::+:::::::::::::::::::::::::::::::::::::++++++:::::::+:::::++:+++:::::+:::::::::::::::::::+++++++++++++++*+**+*+***++++++*+++++++++:+++:++:+++++++++++++++**+**+++*****************+******************+********#*#########%#%%%%%%%%%%%%%%%#%#%%
%%%%%##%#####**#####*##*****+++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::+:::::+:+:+:::+:::+:++:+:++:::::::::::::::::::::::+::+++++++++++*++++++*+++++++++++++*+++++++++++:+++++++++++:++++++++++*******+*************+**********+**+**************#**##%##%%%#%%%%%%%%%%%%%%#%%%%%
%%%#%######%%#####*##****++++++++:+::++:++++++++*++++:+:::+::::::::::::::::::::::::::::::::::::::::::::+:::+::++:::::+:::::::::::::::::::::::::::::::+:+:+++++++*+++++++*++++**++**+++++++++++++++++:++++++++++*+++++++*+++**+**+**+****#********+*++*************************######%#%%##%#%%%%%%%%%%%%%%#%
%%%%%%###%###*#####****+++::++:+:++::+:+++++++++++++:+::::::::::::::::::::::::+::::::::::::::::::+:::::++:+:++:+:+:+::++::++:::::::::::::::::::+::::::+:+++++++++++++++++++++*++++++++++++++++*++++++++++++++++++++*++++++*********************+**********+****************#########%#%##%%@%%#%%%%%%%%%%#%%
%%%##%%%%##########***+*+++++::::::+++:+:++++++++++++::::+:::::::::::::::::::::::::::::::::::::::::::::::++:::+++:+:+++:::+:+:::::.:::::::::::::::::+::+:+++++++++++++++++++++++++++++++++++++:+++++++++++++++++++++++++++**++*++*******+**********+**********************#*#*#####%#%#%#%%%%%%%%%%%%%#%%%%%
%%%%%%#%##%########*+++++::::::+::::::+++++++++++++::+:::::+::::+::::::::::::::::+::::::::::::::::::::+::+::++:::::++:+:++++:::::::::+:::::::::::::::+::+:++:++:++++++++++++++++++++++:++++:+::++++++++++++++++++++++++++*+*+*+**+*++*++**+*+**+*+****+*+***+*+***********#**####%#%##%#%%%%%%%%#%%#%%%%%%%%
%%%%%%%#########**#*+++::+:::::::::::+::+++++++++:++:+::::::::::::+:::::::::::::::::::::::::::::::::::::::::+:+++++::+:+::::::::::::::::::::::::::::::+:::+++::++++++++++++++++++++++++++++++++++++++++++++:++++++++++++++++*+*+*++***+********+*+**+*************+*********####%##%%%##%%%%%%%%%%%#%%%%%%%%
%%%%%%#%#######***++++::::::::::::::+::+++++++++++:+::::::::::::+:::::::::::::::::::::::::::::::::::::++:+:+:::::+:+:::::+++:::::::::::::::::::::::::::+:::++++::++++++++++++++++++++:++++:+++:+++++++++++++++++:++++++*+++*+*+*++***+*++**+**+******+***+*+**+*+*#**#****#*########%%%%%%%%%%%%%@%#%@%%%##%
%%%##%#%#%%####**+*++:+:::::::::::::+++++++++++++++:+::::::::::+:+:::+:.:::::::::::::::::::::::::::::::::+::+::+:+:+::::::::::::::+:::::::::::::::::::+:+:+:::++++++++++++++++++++++++++++++++++++:*+++++++++++++++++*++++++++++*+++*+***+***+*++********+***************#*#######%#%#%#%%%%%%%%%%%%%#%%#%##
%%%%%%%%#######*++++:+::::::::::::::++++++++++++++:+::::::::::+:++:+:::::::::.:::.::::::::::::::::::::::::::::::+:::::::::::::::::::::::::::::::::+::::+:::::+:::+++++:+++++++:++++++++++:++++++++++++++++++++++++++*:++*+++++++**+*++++++++*+*+*+*++**+***+***+************#####%##%%#%%%%%%%%%%%%%%%%#%%%%
%%#%%#%######****+++:+::::::::::::++++++++++++++::::+::::::::::++::::::::::::::::::::::::::::::::::::::::::::+::::+::+::+:::::::::::.+.::::::::+:::::::::+:::+:++++++++++*+++:++++:+++++:*++++::++:+++*+++++++++++:+:+++*++++++++++++*++*+++*+**+*****+***+*******#******#*#######%#%##@%%#%%%%%%%%%%%#%%%%#
%%%%%%##%#####**+*++::::::::::++++++++++++++++:+++::+:::::::+:+::++::::::::::::::::::::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::::::::+:::++:+:++++++++++++*++++++*+++++++++++++++++++++++*+++++++++++++:*++++*+*+++++*++***+*+*+*+*****+******************######%#%%%#%#%%%%%%%%%%%%%%%%#%%
%%%%%##%######***+++:+:::::::++++++++++++++++++++:+:+:::::::+++:+:+:::::::::::::::::::::::::::::::::::::::::::::+::::::::::::::::::::::+:::::::::::::::+++::::++:++++++*++**++++*+++++++++++++++++++++++++++++++*++++++++++++*++*+*++*++*+++*+*+*+*+**++**+*+**************######%#%%%#@%%%%%%%%%%%%%%%#%%%%
%%%%#%%#%%%#*#****++++::++++++++++*+*++++++++++++:++++::::::+++:++::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::+:::::+:++++:+++++++*++++++**++++++++++++++++:++++++++++++++++++++++*++++++++++++*+*+*+*++**+*++*+***********#+*****#***#######%%%##%%%%#%%%%@%%%#@#@%%@#%
%%%%%#%##%####***++*+++++++++++++*****+++++++++++++:+++++:::+:+++:++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::++:::+:+:+++++++++++**+*+**++*++*++++++:+:+++++++++++++++++++++++++++++++*++**++*++++**+**+*+*+*+************#*******#######%###%#%%%%%%%%%%%%%@%#@%%%%
%%%%%%%#######***+***+++++*+*+++*******++++++++++++++++:+:+::+++++++:+:::::::::::::::::::::.:::::+:::::::::::::::.:::::::::::::::::::::::::::::::+::::+::++:+:++++++*+++*******++*++*+*++++++++++++:++++++++++++++++++++++++++++++++*+**+*++********+*+**+*********#***###############%@%%%%@%%%%%#%%%#@#%%%
%%%%%%%%%#####*******+*#***************++++++++++++++++++::+::++:+++::+:::::::::::::::::.:::::::::::::::::::::::::::::::::::::::::::::::::::::::+::+:::+:+++++++++++*+**+++*++*+*+**+*+++++++++++++++++++++++++++++++++++++++++++++*+++*++++******+*#+**+*+************#*#######%##%%#%%%%%@#%%%%%@%%#%#%%%#
%%%%%%%##%######*************#********+++*+++*+++*++++++++::+:++:+:+++::::::::.:::::::::::::::::::::::::+:::::::::::::::::::::::::+:::::::+:+::::::+:+:++++++++++++*++**++*+***+++*+**++*+++*+++++++++++++++++++++++++++++*+++++*++++*+++++++*+**+*++*******************###########%#%##%#%%%%%%%%%%%%%%%%#%
%%%%%%#%#%#%#%##*#*##**##***#*********++*+*+*+++*++++++++++:+:+++:+:+++:+:::::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+++++:+::++++++++++++*+**+*****++***++*+*+++*+++++*++++**+++++++++*+++++++++++++:+++++*+*+*+*+*+*+**+***++**+**#*********####%###%#%#####%#%%%%#%%%%%%%##%%#@%
%%%%%%%%#%%#############**##**#******+*+++++++*++*++++:++:+:+:++:+++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++:::+++++++++++++++++++*++**+**+*****+*++++++++**+++++++++++*+++++++++++++*+++++*++++++++++**++*+*+*++*+***+**+***********##################%#%%%%%%@%%%%%%%%%%
%%@%%%%%%###%#######*##*####***###***++++++*+*+**+++++++++:::+:+++++:+:+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++::+:+++++++++++*++++++++*+**+******+**++***++**+**+*******++**++++++++++++++++*++++*:*+++++++***+*+*+*******+*#************####################%%%%%%%%%@%%#%%%%
%%%%%%%%%#%#%%#################****+++*++++++++++*+++++::+++++++++++++++:::::::::::::::::::::.:::::::::::::::::::::::::::::::::+:::::+::::++:+++++++++++++*+++***++++*+*+*+*+*++*****+***+*******+**+*+*++++++++++++++++++++++++++++++*+**+++**+*+****+***+#***********#*###*##%####%#%%%#%%#%%%%%%%#%%%%%%%
%%%%%%%%#%###%###########*#**####****+++++++++++*++++++++++:::++++++++++:+::::::::::::::::::::::::::::::+::::::::::::::::::::::::::::::::++:+++++++++++*+++*+++*+***+******+++*********+********+*+**+*++++++++++++++++++++++++++++*++++++*+****++*+******************######%##%%%##%####%%##%%%%%%%%%%%%%@%
%%@%%%%%%%#%%#######*##########*****+*+*+++**++*++++++++++:++++:+*+++++++:::::::::::::::::::::::::::::::::+:::::::::::::::::::::::::::::::++::+++*++*++++*+**+*++*++*****++****+*******+*******++***+*+**++++++++++++++*+++*+:*++**++*++++**+++*++***+*+****+****#**##*#*#**%##%##%%###%#%#%#@%%%%%%%%%@%%%%
%%%%%%#%#%###%##%##############****+*+++++*++++++++++++:++++++++++++++:++:::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++::+++++*++++++***++**+*++*++++**+********+****************+**+*++++++++*++++++++*++*+++*++*++*+********+*++***********#**#*########%#%##%%#%%%%#%%#%%%@%%%%%%%%%
%%%%%%%#%#%#%##%######*#####*##*****+++*++++++*+**+++++++++++++++++++++:++::::+::::::::::::::::::::::::::::::::::::.::::::::::::::::::::::++++++++++++++**++++****++*++*+*++*+*+*****+****+******+*+*+**++++++++++++++++++++*+*+*++++*+*+++++**++*******************#*#########%%#%%%%%##%%%%%%%%@%%@%%%%%%%
%%%#%%%#%#%%%%####%#######**###***++***++++++++*+*+*+++++++:+++++++++++++:++:+:::::::::::::::::::::::.:::::::::::::::::::::::::::+::+:::::::++++++++++**++**+*+*+++++++++++++*+++*+++*+****+********+*+++++++*+*++++*+++*++++*+*++++*++++**+**++**+***+**++********#####*########%###%%%%%%%%%%#%%%@@%@%%@%%
%%@%%#%%%########%#####*#*###****+*++++++++*+++++*++++:++++++++++++:++:+++:+::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++:++++++++*++++++*+*+++++++++++*++++++++++*+*******+*+++++++++*+++++++++++++++++++**+++++**++****+******************#*########%#%#%%%%%%%%%%%#%#%%%%%@%@@%%%@%
%%%%%%%%##@%%#################***+**++++++++*+**+++++*+++++++++:++++*+++++++:+:+::::::::::::::::::::::::::::+::+::::::::::::::::::::::::::::::++++++++++*++++++*++++++++++++++++++++++**+*+*********++++*+++++++++++++++++++*++++++++*+++++*+++********************############%%#%##%%#%%%%%%%%%%@%%@%@%#%%
%%%%%%#%%%#######%*#####*####****+*+*++++++*++*++++++++++++++++++++++++++++::+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::++:+++++++++++++*+++++++++++*++++++*+*++**+*+*+**+*++++++++++++++*++*++++:*++*++*++*++***+*+++*+*+**++*+**+*+*********##############%##%%%%%%#%%%%%%%%%%%%@@@%%
%@%%%%#%#%#%################***#*****++++*++*+++++++++++++++++++++++++*+++:+:+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++*++*++++++++*+++++++++++++++********+++*++++++++++*+++++++++++*+++*++*++++++++*****+++**********+*******###########%####%%%%%%%#%%##%#%%%%%%%%%%@%
%%%#%%%%%#%###%#%####*#%#*##**++*+*++++++*+*+**++*++++++:+:++++++++++++++++++:++:::::::::.:::::::::::::::::::::::::::+.:::::::::::::::::::::+:+::++:+++++++*++*+++*+*+++++++++++++**+*++*+***+**+++++++*:++++*++++++++++++++:++++++**++++*+*+#+***+***+************#########%%#%#%%%%%%%%%%#%%#%%%%%%%%@@@%%
%%%%%%%#%#%%%#%#%##########*******++*++*+++++++*+*+++++++++:++:+++++:++++++++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++++++++++*+++++++++++++**+***+*+*+++++++++++++++++++*+:+++++*++++++++++**++++*+*++**+****++******###########%####%%%%%%%%#%%%%%%%%%%%%@%%%@@%
%%%%%#%%%####%######%######*#*****+++++++*+++*++++++++++++:+++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+::::+++++++++++++++*++++++:++++++*++*+****+*+*+++*+++*++++++++++++++++++++++++++++++*+**++**++*+*+************+**####%######%###%#%##%%##@#%#%##%%%%%%#%%%%%@%
%@%%%%%#%####%#*%####*#*#******+*+++++++*+++++++++*+++:+:++++++++:++++++++++:+++:++:::.::::::::.:::::::::::::::::::::::::::::::::::::::::::::::+:+++:+++++++*+++++++*+++*+++++++++*+++*+*+*+*+*+++++++++++++++*++++++++++++++++++++++++++*+*++**++***+******#*#*#######%#####%#%#%%#%%%##%#%#%%###%#%%@%@%%%
%%%%#%%%%##############*##***+*+*++++++*+++++++*+*+++++++++++++++++++++++++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+++:+++++++++++**+++++++*++++*+*+*++*+*+++++*++++++++++++++++++++*++++*++++++*+++++++++*++**+++*+*******#*+#**#####%####%%##%%%%%%#%%%%%%%%######%%#%%%%%%
%%%%%%%%#%##@##*#*#%##*###***+***+++*++*+++*+++**+*++++++:++++++++++++*+*+++++:+:++:::::::::::::::::::::.:::::::::::::::::::::::::::::::::::::::::::+:+++++++++++++++*+++*+**+#++++***+*++++++++++++++++++++:+++*++++++++++*+**+++++****+***++*******+*******####%####%#%###%#%##%%%@#%%%%%#*%%###%%#%%%%#%%
%%%%%%#%%%#%#%###%#*#####****++*+++++++++++++++*+++++++++++++++++++*++:++++++++++:++:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::++:+:++++++++++++**+**+**+++****++++++*++*+++++++++++++++++++++++++++++++++++++*+*+++*+*+**+*++*+******+*#########%##%###%###%#%%#%%%#%#%%#%*###%###%%%%%
%%%%%#%###%##########*##*#**+*++++++***+++:+++*+*+++*++++++++++++++++++++++*++++++:::+::::::::::::::::::::::::::::+:::::::::::::::::::::::::::::::::+:+++++++++*+++*+***+*********+*+*+*+++++++++++++++++++++++++++++++++++++++++++*++*+*+*+*++*+*************####*######%###%#%%%%%%%%%%#%%###%##%###%%#%%%
%%@%%%##%%#%######%##%###****+*+++++++**+++++++*+*++++++++++++++++++*+++++++*:++++++::::::::::::::::::::+:::::::::::::::::::::::::::+:::::::::::::+:::++++++++++*+++*+*+*********+*+*+**++++++++++++++++++++++*:++*++++++++*+++++++++++*+*+*+**+**+*********#*#####%##%%##%%%##%%%%%%%%%%%%%%%%%##########%%
%%%%%%%##%%%############***++++++*+++++++++++**+++++*++++++++++++*++++++++*++++++++++::::::.::::::::::::::::::::::::::::::::::::::::::::::::::::+::::::++++++++++*++*****+*************+++++++++++++++++++++++++++++++++++++++++*+*+++*++**+*+*+****+******#########%%%%#%#%%%%%%%%%%%#%%%%#%##%###########%
%%%%%%%%%%##%%##########**+*+*+++++**++++*++*+++++**+*++++++++++++++++++*++*+++++*:+::+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::+:+::+++++*+*****+*************+**++++++++++++++++++++++++*++:++++++++++++++++++++*+*++#+***+***********#####%#%%#%#%%%%%%%%%%@%@%@#%%%%%%%####%#####%
%%%%%#%%%#%#%########*#******++++++**+++++++++*++**+**++++++:+++++++++++++++*+++:+++++::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::++++:+::++++++**+*+**********+*+*+++*++++++++:++++++++++++++++++++++*++:+++*+*+*+***+*+****+*+******#**#*%#%*#@#%%#%*%#%##%%%%%%@%#%%%%%%%%#%%####%###%#
%%##%%#####%###%#####*#**+*+++++++*++++++++*++******+*+++++++++++++++++++**++*++++++++:::::::::::::::::::::::::::::::::::::::::::::::::::::::+:::::::::::+++++++++++*+***+*****+*+*++++++++++++++++++++++++++*+++++*+++*+++++++++*+*+++*++*+*+*****+*****#*###*###%##%%%%%%%%%%%%%%%%@%@%%%%%%%##%##########
%%@%%%%%#%#%####%###*#**+*+*+++++++*+++++**+++*******++*:*+:++++++:*+++++++++++*++++::+:::::::::::::::::::::::::::::::::.::::::::::::::::::::::::::::::+:++:+++++++++++*+++++*+*+++*+++*+:++++++++++++++++++++++:+++++++++++++++*+++++*+++****+**+***+***######%##%%%#%#%%%%%#%@%@@%@@@@@%%%%%%@#%%#%##%%##%
%%#%%%%###%%#######****+*+*++++++*++++++*++++*****+*+*+++:++++++++++++*+*++++*++++++++++:+:::::::::::::::::::::::::::::::::::::::::::::+::::+:::::::+:::::+::+++++++*++++++++*+++*+++++++*++++:+++++++++++++++++++++++++*+++++++*++*+***+*****+***+******########%#%#%#%#%#%%%%%%%%@%%%%@@@@#@%%%%%####%##%%
%%%%%###############****+++++++++++++++++++*+********+++++++++++++++*+*++*+*+++*+++++++++:+::::::::+::::::::::::::::::::::::::::::::::::::::::::::::::::+:::++++++++++++++++++++++*+++++++++++++++:++++++++++++++++++++++*+++++*+++**+++++*+**+*******###########%#%%%%#%@%#%%%%%@%%@%%@@%@@@#@%%%%%#%%%%%#%
%%%%%##%*##########***++++++++++++++++++++*+*+****+*+++++:++++:+++++*+*+++++++++++++++++++:::+::::::::::::::::+::::::::::::::::::::::::::::::::::+::::::++++:::++++++*++++++*+++++++++++++++++:++++++++++++++++++++++++++++*++++*+++++*++**+***++******#############%%#%%%%%#%@#%%%%@%%%%@@%@@%%@@%%%%%%#%#%
%%%%####****#**##**+*++++++++**++++++++++*+****#****+++++++++++++++*+*+*+++*++++*+++++++:+++::::::::::::::::::::::+::::::::::::::::::::::::::::::::::::::::++++++++++++++++++++++*+++++++++:++++++++++++++++++++++++++++*+++++*++**++*+******++******#**######%###%%%%%%@%%%%%%%%%%%%@@%@@@@@@@@@@%%%%%%%%%%
%%%##%*#**+********+++*++++++++++++++*+*++*+******+*+++++++:+:+++++++++++*+++++++++*+++++++++::+:::::::::::::::::::::::::::::::::+:::::::::::::::::::+:+:::+:+:++++++++++:+:++:+++++++++:+++++:+++++++++:*++++++++++++*++*++**++*+*++++++*+*+***+****####*#####%%#%%##%#%%%%@%@%%%@%%@%@@%%%@%@%%%%@@%%%%%%%
%%#####**+++++*+++++++:+++++**++++++++++++***#*****++++++::++:++++++++*+++++++++++++++++++++++++:::::::::::+::::::::::::::::::::::::::::::::+:::+:::::+:::+:+:+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*+**++**+**********###*#####%####*%@%%@%@@%%@%%%%%%#%%%%@@@@@@@@@@%@%%@%%%%
%%%%##**+++++++++++:+::+++++++++++++*++**********#*++++:++:::+++++++**+++++++++++++*+++++++++::+:+:+:::::+:::::::::::::::::::::::::::::::::::::+::::::::+::+::+::+++++:+:+++:+:+++:++++++++++++++++:++++++++++++++++++++++*+++*+**++**+*+*+*+*+***######*##%#%##%%%#%#%%#%#%%%@%%%%@@#%%@%@%@%@%@@@@%%@%%%%%
%%%####***+:+++:+::::+:+++++*++++++*+**+****###***++++++:::+:+++++++++++*+++++++++++*+*+++++++++++:::::::::::::::::::::::::::::::::::::::::::::::+:::::++++:+::++++::++++:+:+:+++*+:+++++++++++++++*++++:++++++*+++++++*+++++*+++++**+*+*+#**+*****####*#*####%%#%%%##%%%%@%%%%@%#@%%%%%%%%%@@%@@%@@@@@@%%%%
%%%%##***++++::+::::::+:+++++++++++*++**+*##*#****++++:+::+::+++++++++*+++++++*+++**+*++**+++++++::+:+:::::+:::::::::::::::::::::::::::+:::+::::::::::::+:::::+:++:+:+++++++++++::+++++:+++:++++++++++++*:++++++++++++++++++++*+*++**+**+*+*+*****#########%###%#####%%%%%%%%%%%%%%%%%@%%%%%%%@@%%@@@%%@@%%%
%%%%##****+++:::::::::+:++++++++*+++*****#**#****++++:::+::::++++++**+*+++++++++*++*++**+++++*+++::+::::+::+:::::::::::::::::::::::::::.:::::::::::::+:::::+::+++:++:+:::++++::+*++++++++++::+++++++++:++++:+++*+++++++*+++++*+*+++++++*****+****#############%#%%%%%##%%%#@%%#@%@%#%%%%%%@@%%%%@@%@%@%%@%@%
%%%%%#****+++:::::::::+::+++++++++********#*****+++++:+:::::+:++++++*++++++*+**++***+*+*+*++*+++++++++:::::::::::::::::+::::::::::::::::::::+::++:::::+++:::+::+:++:++++++:++++::+++++++++++++++++++++*+:++:*++++++++++++++++*+++++*++*+********##*#######%#%%##%#%%%%%%%%%%%%@#%%%%%%%%%@%%%%%%@%%@%%@@%%%%
%%%%##%#**+++++:::::::::+++++++++*********#***+*+++::::::+:::++++++++++++*+++++*******++++*+++++++++++:+:+:::::::::::::::+:::::+:::::::::+::::::::::::::::+::::++:++++:::+:+++:+++:++++++:++++++++++++++++++++++++++++++*+++++*+*+***++*+*****#*##*############%%%%%%%%%#%#%%%%@@%%@%%%@#%%%@%%%@%@%%%%%%%@%
%%%%%%##**++++:+::+::::++:*++*+******###******+:++:::::::.+:+:++++*++*+*++***+******+*+**++++*+++*++++:+::::+::::::+:.:::::::::::::::::::::::::::::+:::::::+++::+:++:+:+++::::++++++++++++:+++*:+++++:*:+++*++++++++++*+*+++*+*+*++++*+*:******####*%##########%%%#%%%%%%@%%@%%%%%%@%#%%%%%#%%@@%%%%#@%@@%%%
%%%%%%###***+++++::+:+:+++*++*+*****#***##**+++++::::::::::::++++*+++++++*+******#****+*+++++++**++*+++:+:+:+::::::::::::::::::::::::+:::::::::+:::::::+:+::+:::::++++++:+:+:++++::++++:++++++:++++++++++++++++++*+++++++++*+*+*+++*++*+******#*#*############%##%%%%#%%%%%%%%%%%%%%%%%%%%%@%%%%%%%%@%@%%@@%
%%%%%%%####*+**++++++:+++*+********#**##***+*+++::::::.:+:::+++++++*+*++++************++*+++*+*++++++++++++:::::::::::::::::::::::::::::::::::::::::::::+::::+++++:::++++:++++:+++++++++++++++++:++++++++++++*+++*+++++**+++++*++***+*+******##########%###%#####%%%%%%@%%%#%@%%@%%%%%%%@%@%%%@%%%%%%%%@%%%%
%%%%%%#%##*****+*++*+*+++++**+****#*##******+++::+:::::::::+:+++**++++*+**+******+*#+****+#+*+*+*+++++++++:+++::+::::::::::::::::::+:::::+::::::::::::::+:++:::::+::++:+:::+:++++:+++++:++++:+:+++++++++++++++++++++++++**+++++**+++*+******#*##*######*#######%#%%%%#%%%%%%@%%%%%%%%%%%%@%%%%%%%%%%%%@%%%%%
%#%@%%#%%#%##*****+*+*+*********#*#***#**+++++:+::::::::::+:+++++*+*+******************+***++*++++++++++++++++::::+:::::::::::::::::+::::::::::::+:::+:+:+:++::+::+:+:+::::+++++++++:+:++++:+++++++++++++++++++++++++*+++++++**+*+*********##*##################%#%%%%%@%%%%%%%%%%@%%%%%%%%%%%%%%%%%%%%%@%%%
%%%%%##%#######******************###%****++++:::::::::+::::::++++++:*****+*#*******+****+**+*++***+++++++++:++::::::::::::::::::::::::::::::+:::::::+::+:+::::+:+:+:++++:++++++:++*++++:++++++++++++++++++++++++++**++**++*++*+*+**+#****#*#########*##########%#%%%##%%%%%%%%%%%%%%%%%%@%%%@%%%%%##%%%%%%@%
%%#%%%%%%#%#######****##***#****####*##*+*++++:::::::::+::+++++*+++#+****+*+*****#****************+*++++*+++++:+::::+:+:::::+:::::+:::::::::::::::::+:+:+:++++:+:+:++++++:++:+++:+:++++:++++++++++++++++++++++++*+++++++++++*+*+******#*#*#*###*##############%###%%%%%%%%%%%%@%%%%%%%%%%%%%%%%@%#%%%%%%%%%%
%%%%#%#%##%#%%#######***##*###%#####*#**+++:::::::::::::++++++*+**+***+**********+**************+**++++*+++++++++:++:::::::::::+::::::::::::::::::::+:::::+:::++++:::+:+:++:++++++++++++++++++:+++++++++++++++++*++++++*+++++****+***######*###############%##%%%%#%%%%%%%%%%%%%%%@#%%%%%%@%%%@%%%%%%%%%%@%%
%%%%%%%#%%#%##%########*#**###########+*++::::+::+:::++++++++++*++***********+***#*++******+**+****+++*+++++++++++:+:+++::+:::::+:::::::+:::::+:::::::::++::+::+:++:++:+++:+++++++++++:+++++++*++++++++:+++++++*:*+*+++++++**+*+*#*#**##*#***###########%###%%###%%%%%%@%%%%@%%%%@%@%%%@%%%@@%#%%%%%#%%%%#%%
%%%%%%%%#%%#%%######################***++++::::++::+++++++++++*+*+***+*******#****************+*+*+*+++++++*++++++++:::+::::::::::::::::+::::::+::::::::::+:+++:+::+:++:::+:++++++++++++++++++++++++++++++*++++++++++**++*++*********###*###########*##%###########%%#%#%%%%%%@%%@%%%%%%%%%%%@@%%%#%@%%##%%%
%#%%%@%%%#%%%#%###############**####*+*++:+::::+:+++++++++++*++*+*+**************#**#*************+*++*++++++++*+++++:+:::::::+:::::::::::::+::::+:+++:+::+:::++::+++++++++::++++++++:++++++++++++++:+*+++++*+++++++++++*++****##*#%*****##*#%########%%#%###%##%##%%@%#%%@%%@%%%%%%%%%%%%@%@%%%%%%%#%%#%%%%
%%%%%#%%%%#####%#%######%##########***++++:+:+:+++++++*++++*+**+**+**#+*+**************##**#+**+*++++++*+++*+**+*+*++++:+:+::+:::::::+:+::+::::+::+:::+::::+++::::+:++:::::+++++++:+:+++++++++:++++:+++++++++++++++*++***+*******##*######*#*########%######%##%#%%%%%%%@%%%%%@%@@%@@%%@%%%@%%@@%%%%#%%%%#%%
%%%%%%%%%##%#%###%#############%#*#***+++++::++++++++++++*++++**++*******************#**********+*++++++++*++++*++++++++++++++::+:+::::::::::++:::+:::::::+::+::+:+++++:++++++:++++++++++++++++++++++++++:*+++++++++*********#*##**###########**%####*%#%#%%#%#%#%%%%%%%%%%%@%%@%#%%%%%%%%%%%%#%%%%%@@%%#@%%
%%#%%%%%%%%%%#####%#######*######**#+*+++:++++++++*+***+*:**++*+***++*+***+****#**#*#*#**********++**+*+:*++++*++++*++**:++++::++:++::+::::::::::+:::+:::+::+:++:++:::++++++++*:+:++:+++:+++:+++++++++++++++++*+*+*+*+**+****##**#######%****########%###%#%##%#%%#%%%%%%@%%%%@#@%%%%%%@%%@%%%%#%@%##%%%%###
%%%%%%%%%%#%%%%%##########%#*#####****+++++++++*********++++*+*+++***+***************#*********++**++*++*++*+*+++*+*++*+++++++++++++::::+::::+::++:::++:::::++++::++++++:++:++:++:++++++++++++++++++++*+++++++*+*********#*##########%#######################%#%#%%%%%%@%%%%%%%@%@%%@%%%%%%%%%@@%%%%%%%%%%%%
%%%%%@%%%%#%##%#########%######%*##*****+++++++********+*+++*+*+*++#+******#*#***#******#********+****+++++*+*++****++*++++++++++++++++:::+:+::+:+::::+:+::+:+++++:+:++++++++:++++++++++:+++++++++++++++*+++++*++*******#***###*##########*######%#######%%%#%##%%%%%#@%%@@%%%@%%%%%%%%%@%%@%@%%%%%%%%%%%#%%
%%%%%%%%%%##%%#%#%@%#%##########**#****+***+#*****+*****++**+*+*+*++*+****#***+*******#***********+*+*++++*+*+**+**+**+*++++++++++++++:+:+++:+::+++::+:+::::+++::+++++:++++++++++:+++++++++++++++:+++++*++++**++******#**###*#*#*######*#######%##%####%######%##%%%%%%%%%@@@%%%%@%%@%@%%@%%@%%%@%%%%%%%####
%%%%@%%%#%%%%#%#%##%###############*#**********#*#******+++++*+++*+****************#***************+*+*+*+++++*****+*++++**++++++++++++:+++:::+++:::+:+:+++:+::+++++:+++++++++++++:++++++++++++++++*++++++*++*********#####***#####%#########%#####%#######%%%#%%##%@%%%%%%%@%%%%%%%@@%@%%%%%%%@@%%%%%%%#%##
%%%#%#%%%%#%#%%#####%%#%###%##*####*********#***#******++*+*+*:++**+**++************#**************#+*+*+****++*+***+*+*+++*+++++*++++++++++++++++:+:+::+:++++:++++::++++++++:++++++++:+++++++++++*++*++**+******#####***############%#####*####%%%%%#%#%%%#%#%%##%#%%%%%%@@@@@@@@%@@@@%@%%@@@@%%%@%%%%%%#%%
%%%%%%%%%%#%%%%########*%%####%#####*##***#**###*#******++++*+***+****+******************************+**+*+++*+**+**+*+++**+*****++++++++++++++:++++::+:+++:+++++::+++++++:+++++++:+++++++++*+++++++*+*+*******#***#*#*####*#######*###%##%##%#%###%#%#%###%##%###%%#%%%@@@@%@%%@@@@@@%@%@@%%@%@@%%@%%%##%##
%%%%%%%%%%##%%%%%#%%%#%#############****###########******++++++++++****+*******+*****#**#*************++*+***+*+++++*+*++****+*+****++++++++++++++++++++++++:+++++++:++++++:++++++++++++++++*++*++*****+********#****#*###*##*######%%######%####%%%%#######%%##%%%#%%%@%%%@@@@@@@@%@@@@@%@@@@%%%%@%@%%#%###
%#%%%%%%%##%%#%%##%%######################*#*###**#***+**+*+++*++***********++#****#***##**#**#*******+*****+**++++++*******++**++*+*****+++++++++++++++++++++++++*++:++++++++++++++++++++*++**+*++*****#****##**###*#*######*#######*#%###%#%%%##%%#%#@#####%#%###%%%#%@%@%@@@%@@%@@@@%@@@@@@@%@%@%@%%%%%##
%%#%%%%%%%%%%%%%####%%##################*########*******++++*++*+***+++*********+*****#**###*#********++*+***++++*++++*++****+****+***+***+*+++*++++++*++++++++++++++++:+++++++++++*+*+++++***+********#**###***#**#*###*###########%#%###%#%#%#%%%%%%%#%%%#%%####%#%%%#%%%%@@@@@@@@@%@@@@@@@@@@%%%@%%%%####
%%%%%%%#%%###%#######%#%##%########%#*############****+**+**++++***+**+********+***#*****##*#*******+*+*+****+++*+++****************++***+****+*+**+++++*+++++*+++++++++*+++*++*+*++*+**#+++*************#***#**###*##*###################%#%%##%#%#%%%#%%%####%#%####%%%%@%@@@@@@@@@@@@@@@%@@@@@%@@@@%%@###
%%@%#%%%%#%%%#%%#%%%####%#####%#%#%############*##**#***+*+*+++++*+****+******+********######********+*+***+**+++**+++++**********+***************+*+++*****+*+*+++**+*+*+*++**+++***++*************#****#*#*#*##**#*#*######*######%#%##%%#%#%%%%%%%#%%##@#%%####%%%###%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@%%%###
%%%%%#%%##%%##%######%##############%###%#**#####*#*******+*+++*+***+******+++***#******###*##*************+*+++*+++++*****#********************+***+*********+**+*********+*+******************#**#**#***#**###*##*#############%%##%%%%##%#%%#%%#%%%%%%%%####%#######%%%#%@@@@@@@@@%@@@@@@%@@@@@@@%@@%%%##
%%%%%%%%%%%#%%##%###%*########*###########%#**####*******+*++++*+*+*+*+*******+*##**###**###******++**+**+*++*+++++***+**********+********+***++*****+****************#***********#*********#***##*******#*#**#***#**###########*#####%#%%#%%%%%%#%%%%%%%%#%%%########%#%#@%%@%@@@@@%@@@@@%@@@@@%%@@@@%@%@%%
%%%%#%%%%%%%%#%%#%##%#####%########################*****+*++*+++*+++**+#********+******#####*****+***+**+++**+*++***+******************#*********+**+*******+*****************************##*************##*######****#*####%##%#####%%#%#%#%###%%%@%%%%%%%%#%%%####%####%%%%@@@@@@@@@@@@@@@@@@@@@%@@@@@%%#%
%%%%%%%%#%%##%%#%###%########%#%#%###############*****+**+*+++++*+*+*+**********#******##*#***#*+**+****+**+++++++*+**************+****#**#*******+***************+***********#**********##*###*#***###*#***###*#*#**######%#%##%#####%#%####%%%%%%%%%%%%%%%%%#%##%######%%%@%@@@@@@@@@@@%@@@@@%@@@@@@%%%@%%
%%%%%%%%%%%%#%#@#%%###%#####%#####%#%###%####*######**+***++++*+****+*****+*+*+*+**+##*####*##+***++*+***+*++*+**++**+**#***********************+******#*****************+**#*+****###*####*#****#*****#*###***#*#*##**######%####%%%%#%#%#%##%##%%%%@@%%%%%%%#%##%########%%%@%%@@@@@@@@@@@%@@@@@@@%%@@@%#%
%%%%%%%%%#%%#####%%############%###################*#****++*+++*+*++*+****+*****#****######*****+++*****+****+++*****#****#***********#**********************************#*#****#*#*#*#####*#*#***##*****#**####*#**##################%##%#%%%#%%#%%%%%@%%%%%%%%%###########%%@@@%@@@@@@%@@@@@@@@%@%%@@@%%%%
%%@%%%%#%%%%#%%###%%##%##%#%%#######%########%######*#*+*+++++++++*++****+++****#****####*#**#*++**+**++#+*+*+*+********##***********##********+*++***************#*+**###*##********####*##*****#****#***####**#***##**#%*%##%##%%#%%####%#%###%%#%%%%@@%%@%%%%%%###%#####%%%@%@@@@@@@@@@@@@@@@@@@@@@@%@@%%
%%#%%%%%%%#%%%%%%%%###%########%####%#######*######******+++:*+++++*+**************#######*******++**+*+*++*+*+++******#*******#***#*##*********+*#**+*********+#****#***##*#***##############****#*##***#*####***#**########%#%##%%##%%#%##%#%%%%%%%@%@%%@%@%%%%%#########%%%%%@%@@@@@@@@@@@@%@@@@@@@%%@@%%
%%%%%%%%%%%%%#%%############%#####################*****+*++++++++*++*****+********######*#**#*++*+******+****+**+******#*#****#****###*#*#***+**************************#*#**#**#*#*#######***##**#*##**#*#######**#*##**###%#%####%%###%%#%%%##%%#%#%%%@%%@%%%%%%%%##########%%%@@@@%@@@@@@@@@@@@@@@@@@@%%%
%%%%@%%#%%%###%##%%%#%####%##%#%######%#######%######****++++:*+*++**+**************##*##****+*+++***+*+#+*+***+*****%*#********#*######****************************+****####****##*######**###**#***###*##*####*##*##*#*%##%##%#%%###%%#%%%%#%%%%%%%%%%%@%@%@%%@#%#######%#%%%%%@@%@@%%@@@@%@@@@@@@%%@@@%%%
%%%%%%%%%%%%#%%%##%##%###########%################*#****+++++*++*+++***+*++*+*****#####*#*****+*++++*+**+***+*********###*#*#*****#####*#*********#**************+**+*****#**#*###########*###*#**#*****#*#######*#**####*###%#%%#%#%%%#%#%%###%%#%%%%%%@@%@%@@@%%%%%########%%%@%@@@@@@@@@@@@%@@@@@@@%%@%@%
%%%%%%%%#%%%%#%%%%###########################%#####*****++++++++++*+++**+*****+*****####******+*+++++*+*+*******+****#*****##*########*#*#********+#********************###**#*#**#*#*#####**#*##**#*###**########*##*######%##%##%##%#%%##%#%%#%%#%%%%%%%%%@@%%%%%%%%%%%####%%@%%@@@@@@@@@@@@@@@@@%@@@@@@%%
%%%%%%%%%#%%%##%%#%%###%%#####%#####%##%############****+++++++++++*****++*+****#*#####*#****+++++*+****+**********#*###*##*###########**#*******##******#****+*******#+#*#####*##*#######*#####*##########*#################%###%%#%###%#%%#%##%#%%%%%%%%@%@@%%@%%%%%#%#######%%%%@@@@@@@%@@@@%@@@@@@@%%@@%
%%%@%%%%%%#%%###%%#%#%%#######%#%##%###%###%#######****+**++++++++++**+***********#####***+**++*++++*+*+*****+**+******#*#***#*######*##*####********+*****************####*##**##**###%####*##*###*####**#*##########*#####%#%######%%#%%%%%#%%%%#%%%%%%%%%%@%@@@%%%%%%#%#%%%%#%%@@@@@@@@@@@%@@@@@@@%@@@%%%
%%%%%%%%%%#%%#%%##%##%###%##%#*@*#############%###*#****+++++*+++**+++*+*++******######***++++++++*+****+*+*******#*####****#**######*#*###*********#**+*#***#*+****+*#**######*##########%######*##*###*#**###*#*######*##%##########%#%#%#%###%#%%%%#%%%%%%%@%@%%%%%%%%#%%%%%@%%%@@@@@@%@@%@@@@@@@%@%@@%@%
%%%%%%%%%#%##%%#%#%%%######%#####%###%#############******++++++++++*+*+*+**+*****#######****+++++*+*****************#**#******#*#####***####**#*#*#********************#########*#####%###############%*#***#######*#########%##%%%#%%#%%#%###%%##%%%#%%%%%@%@@%@@@@@@%%%###%%%%%%@%@@@@@@@@@@@@@@%@@@@@@%@%
%#%%%%%%@%%%#%#%%#################%#################*****++++++++++**+*++*******#######***++++++++*++***************#**#**###*#####**##*##*####*#**#*******************###############%#######*#######%####*######*#######%########%%#%%#%#%%%##%%%#%%%#%%%@@%%@@%@@%@%@%##%#%%%%@%%@@@@@@@@@@@@@@@%@@@%@@@%
%%%%%%%%%%##%#%#%%%%##%##%###########%############*#*#+*++++++++++++***+*******##*###*****+*++:*++****+*****************##***#*##*####*#*######*###******#****+*******##*############%############%######*####*###*#####%###%%##%%##%###%%#%%#%%%##%%%%%#%%%%%%@%@%@@@%@%%%%%#%%%%%@@@@@@@@@@@@%@@%@@@@@%@%%
%%#%%%%%##%%%###%###%###############%###############*#****+++++++++***+*+*******#*###****++++++++++*****+******+*****#****###*##*##**#**######**#*#******#**#**#******#*############%###############%######*###########%###%%###%#%#%###%%######%%###%%##%%%%%%%@%@@@@@%%%%@#%%%%%@%@@@@@@@@@@@@@%@@%@%@@@%@
%%%%%%%%%%%%%#%%%%%######%%%%##%###########%#######****+*++:++++:++++*++***#*****###****++*+++++*+*+*******************#*#*#**#**#*##*#*#*#####***#********************#####*######%#%%#############%######*##*#########%%#%#%#######%##%###%%%##%%#%##%%#%%%%%%%@%@@@@%@@%%%%%%@@%@%@@@@@@@@@@@%@@@@@@%%@@%
%%%%%@%%%%###%#%###%#%#%#####################*###**#****++++++++++*+*+++***+#*#######****+++++++++*+**#*****#*******#********#*###*#*############*************##******###########*############*###%###########*#######%####%%#%#%%#%%##%##%###%##%%###%#%%%%%%@%%%@@@@%@@@%@%%%@%%%%%@@@@@@@@@@@@@@%@@@@@%@%
%%%%%%%%%#%%%%#%###%##%####%##########%#############*#*+*++:++++++**+***+******#####***+*+++++++++++*****#***********#***##**##**#**#**#########*#*******##***********######%########%##########%#%#%#%##########*#########%%%%%#%%###%%#####%%#%%%#%#%%#%%%%%%%%@%@@@@@@%@@%%%%@@@@@%@@@@@@@@@@@@@@%@@@%@@@
%%@%%@%%%%%%##%##%%#%#######%##%#%%####%#%########*##*+*++++:+++++*+*++*******#####*##**+++++:++*++***#*##********#**#****#*****##*##***####%###********#********#**#**##%%######%#%#####%#####%#%%%%#######*#*####*#####%##%%%%#%%#%##%###%###%%#%##%%#%%%%#%%%%%%@@@@@@@@%@%@%@%@@%%@%@@@@@@@@%@@@@@@%@@@@
%%%%%#%%%##%%##%#%%##%###%##########################***+++++::++++*++******#***#*###****++++++++++***#*##*************#***###*****#*#*####%%##*##**************##****############*###############%%%%#%#%####*####*######%%%%%%#%#%%#%##%#%###%%%%#%%#%#%%%%#%%%%%%%@@@%@@@@%@@%@@@@%@@@@@@@@@@@@@@@@@@@@%@@
%%%%#@%%%%%%%###@############%##%###%####%#########***+++++:++:++++++**+*****######****+++++++:+*++**##*##*********#*******#*******#*#####%#%###*##******#******#**#*##%################%#####%##%%#%%####*###**#*######%%%#%@%#%%###%#%####%%#%#%%##%%#%#%#%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@@@@@%@@%%
%%%%%#%%%#%%%%%%%#%##%#%#######%#%########%#*######***+*+:+:++++++++++**+#***#######***+++++++*+**##**###*##*****#*******#*********#####*#%######***#***#*****###*****###########%####%###%######%%%%%%%####*#*#*##**#####%@%%%%%%%#%#%%#%%###%####%#%%%###%%%#%%%%%%%%%@@%%@@@@%@%@@@%@@@@@@@@@@@@@%@%@@%@@
%%%#%@%@#%%%#######%#########%#################**#**+++++:++:+++++*++****+**########***++++++++++***#######*********##****##*****#**#######%%####***#*********#**#*########################%#####%%%%%%%###*###**##***###%#%%@#%%%##%##%#%#%%##%#%#%##%%%#%%%%%#%%%%%@@@@@@@@@@@@@@@@@@@@@@%@@@%@@@@@@@@@%@@
%%%#%#%%#%%#%%##%##%%*%######%###%##%#*######*#****++++:+:::++++++++*****#**#######***+++++++++****########***#****#*#**####*#*#**#*###*%#%%%###************#*#*#*#**####################%######%#%%%%@#%####*#**####*%####%%%@@%%#%#%%#%%%#%####%#%#%%%%%%%#%%%%%%%@%@@@@%@@@@@@@@@@@%@@@@@@@@@@@@@@@@%@@%@
%%%#%%%@%%%##%%%##%%#%####%############*##*******++++++:+:+:+::+++*+*+****#####*##******+++++++****########************#**#*#*****########%%######*#*********#*########*##############%#######%###%%%%###%####*#**#*#####%%%%%@%%%%#%%##%#%%%##%%%%%#%%#%%%#%#%#%%%@%%%@@@@@@%@@@@@@@@@@@@@@@%@@@@@%@@%@@@@@
%%%%%%%%%%#%%%%###%#####%###############*#***++++++++++:+::::::++++*******#*#######***+*++++****########*#*##*************#*****##**#*####%%%###*#***********##**##################%#############%%%%%%%########****##*##%##%%%%%%#%%%%%%%#%#%####%##%#%%%@%%%%%%%%%%%@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@
%%#%%%%#%#%%%#%%%##%#%###%##########*****+*++++++++:+:::::::+:+++++*******#*#####****++*+*+*+***###########********#*#**#*#*******##*####%#%%%####*********#**####%###########%#########%######%#%#@%#%@#%%##*#*#**#*###%#%%%%%@%%@%%%%%%#@#%#%%%%%%###%%%#%%%###%%@%%%@@@@@@@@@@@@@@@%@@@@@@@@@@@@%@@@@%@@@
%%###%%%%%%%%#%%%%##%###%##########***++++++++++++:+::+:::::::+++*+****######%#####****++**+****############************#*##**#*****######%%#####***********#*#####%#############################%#%%%%%%%####*#******####%%%%%@@%@@%%%%@%#%%%%%%%#%#%%#%%%%%%%%%#%%%@@@%@@@@@@@@%@%@@@@@@@@@@@@@%@@@@@@@%@@
%%%%%%%%%%%#%%%##%#%#%############***+*+++:++:+:+:::::::+:+:+:+++++*****###*#####*#*****+*++**#*####%###%#***************#*#*#****#####%##%%####*#*****++***#*####%%###############%#%###########%%%#%%%%%%%#####***#*####%#%%@@%%@@%%%%#%%%%%#%%%#%%##%%#%#%%##%#%%%%@@@%@@@@@@@@@@@@@%@@@@@@@@@@@@@%@@@@@@
%%#%#%%%%%#%%#%%%#%%##%#%####%#%#***++++*+:+::::::+:::::::::+++++*****#*####%####*#**********#*##%#%##%#####***********#*******#*##*######%%%####*##**+*****#######%#%#########%#%#########%######%%%%%%%%%*%##********####%#%@@#@#%@%@%%%%#%%%@%%%%%%##%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%@%@@
%%%%##%%%#%#%######%#%####%####%#*****++++++::+:+::+++:++:+++++*++****##*#######*************#####%###%###*#**********#**#*#***#**###*###%#%%####*#**********######%##%##############%##########%*%%%@@@%@%%######*****###%#%@%%%@%@@%%%%%%%%%%%%%%%%%%#%%%##%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%@@@@@%@@@@@@@
#%%###%%%%#%##%%%#########%##%#####****+++++:+++::+++::+:+:+++++***#**###########*#*****#***###%%##%######*##********#****##***##*#*##*#%#%%#####*******++*#*####%%%%%########%#%#################%##%%%%%#%%###*******####%@%%@@%@%@%%@@%%%@%%%@%%%%#%###%%%#%%#%%%%%%%@%@@@@@@@@@%@@@@@@@@@@@@@@@%@@@@@%@@
###%##%%%%%#%##%###%####%########*****++++++++++++:+++++++++++++*******#%#####*#************######%%%#######*#******#******##****#*######%%%%#####***********#####%%%%%%#####################%###%%#%%%@%%%%####*******#####%%%%%@%%%@%%%@@%%@%%%%%%%%%%%%#%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@%%@%@
#%##%%#%#%###%%%%#####%#%#####%##*#****+++++++++++++++++++++++*****#*####*####*##*#*#*****########%%%######*##*****#*#***#***#****##**#####%%%##*******+*+**######%%%%%########%###########*########%#%@%@%%#%##*##**#*#*####@%%%%@@%@@%@%%@%@@%%%%%%#%%%#%%#%##%%#%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@%@
####%##%%%%%#%%#%##############*%#*******++++++*++*++++++++*+++****#*############**#*#*##**####%##%##%%#####*#****##******###*#****######%%%%####****+*+***#*####%%%%%%#%%######%###############%#%##%%%%@%%%%###*#***#*###%#@%%%@@@%%%%%%%@%%%%%%%@%%%%%%#%%%##%#%%#%@%@@@%@@@@@@@@@@@@@@@@%@@@@@@@@@@@%%@@
#####%%%%%%%#%#%%#%##%#######%#####*#********++******+**+*+*+******##########%########***###%#####%#%#####*###*****#***#*#**#*****#*#####%#%%%###*****++****######%%%%%%###########################%#%%%%@%%#%####*******###%%%@@@%%%@%@@@%@%@@@%@%@@%%%%%%%##%%%%%#%%%@%%@@%@@@@@@@@@@@@@@@@@@@@%@@@@@%@@@@
#**##%%%%#%#%#%########%#####%#%##%##*##****#*******#****+**+****#**###################*###%##%#%%#%%%#%#######*****#***#*********#*#####%%#%%###***++*++****###%%%%#%%%%##%########*################%#%%%%%%%%###******####%%%@%%%@%%%@%@@%@@%%@@@%%%%%%%%%%%###%%%%%%%@@@@@%@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@
##*#%##%%%#%%#%%%%#########%#%##%######**##*#**####***************####*#*%##%####*########%#%%#%#%%%%#########****#*#*****#********######%%%%%%#******++***#*###%%%%%%%%%#%##########################%%%%%@@%%#####*****##%%%%%%@%%@@@%@@@%%%%@@@%@@@%%@%@%#%%%###%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@
*####%#%%##%#%##%#########%##########%######*#########************#########*#######*####%###%%##%%###%####*###*#*****#******##*****##*###%#%#%##*****++**+**####%%#%%%%%###################*######%#%%%%%%@%%%@#####****###%%%%%@@@@@%@#@@%@@@@%@%%@@@@%%%%%%%%####%%#%%%%%%@@@@@@@@@@@%@@@@@@@@@@@@@@@%@@%@
**###%#%%%##%####%#####%#%##%#####%%################*##**+**********##*###############%####%%%%%%%%%%%###*%#*##*#****#*****#***###*##%#*##%%%#####*****+****###%%%@%%%%%%%###%######*#*##########%####%%%@%%%%#%####**##*##%%%%@%@@%%@%@%@%%@@%%@@@@@@%@%%%%%##%###%##%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%@@
*####%%%%%%###%%#%##%##%###############################*********##################%#####%##%###%#%#%#######*####*#***#************#**###%#%#%#%##******+*****##%%%%%%@%%%%%######%###########*#####%###%%%@@%%%%#####**######@%@%%@@@@@@@%@%@%@%@@@@@%@@@@%%%%%#%####%#%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@
**#####@#%#%#%#%##%####%%##%##%##%##################*####+******#*#################%#####%#%%%%%#%%%%%%##########***#**#**#**#******#####%%%%%###***+*+*+***####@%%%%%@%%%%%################%##*#%#%#%%#%%%%%@@%%#####***##%%%%@@@%@%@%@%@@@@%@@%@@@@@@@@%@%%#%%%%###%#@%@@@@@@@@@@@@@@%@@@@@@@@%@@@@@@@@@@@
**####%%#%%#%%#####%########%####%##########%###%###*###****+*****#*#**####%##%####%%#%%##%%##%%%%%#%#%########*****##*****#******#*%*####%%%####****+*+***#*#%#%%%%%%%%%%%%%%#########################%%%@%@%%%%####*#######@%%@@%@@@%@@@%@%@@@@@@@%@@@@@%%%%%#%#%###%%%%@@@@@@@@@@@@@@@%@@@@@@@@@@%@@@%@@%
*####%%#%%%#%####%#####%#######%####%##%###%##%#%#######*********#**#%#############%###%#%%%#%%%%%%%%#%%#########**#********#******#*#####%%%%##*****+******##%%%%%%%%%%%%%%%%########################%#%%@%%%%%%##########%%%%%@@@@%@@@@%%@@@@@@@@%@%@@@@@@%%%##%###%%%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
****#%##%###%%%######%%#########*%####%#####*###%*###**#************####*######%%%##%%%#%%#%%##%%%#%####%#*#####**#*#*********#***#*#####%%%%%###*****+*****##%%%%@%@@%@%%%%##%%###############*%##%#####%%%%@@%%%%%**%#*%####%%@%%@%@%%@@@%@@@@@@%@@@@@@@%@%%%#%#*####%%%%@@@@@@@@@@@@@@@@@@%@%%%@@@@@@@@%@
**###%#%%%%#####%%#########%########%######%###########*********#*#*#*#############%###%#%#%#%%%%#%%%%###########*#**#*************######%%%%%#%#****+***#*###%%%%%%%%@%%%@%%%%%##%#%###########**####%%#%%@%@%%%%%%########%%%%@@%@@%@@@@@@%@@@@@@@@@@@@@@%@%%%%#%##%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*#####%%%##%##%%######################%#####%####%*###**********##*#########%###%%#%#%#%#%##%%%#%%#%%%#####*#####***##******#*******#####%%%%%#%*#***#+******%%%%%%%%@@@%@%%@%%%#################%####%###@%@%@@%%%%#%#######%%%%@@@@@@@%@%@@@%@@@@@@@@@@@@%%%%###%#%#%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%@@
**####%#%#%%%%##%%##%###*##%#####%#*###########%#%###*#********##***#######%#%*%###%##%##%%%#%%%%###%##%#####**####**#*******#*****#####%%%%%%%##*********##%%%%%%%%@%%@%%@@%%%%%%#####################%#%%%%%@%@@%%%###%###%%%@%@%%@@%@@@@@@@@@@@@@@%@@@@%@@@%%#######%%%@%%@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@
***#%%#%%%%##%#%######%##########*###%#*#############*#*#*****#****######%#%##%#%%##%###%%#%%#%%%%%%%%############**#**************#####%#%%%%####**#+***####%%%%%@%%%@%%%%%%%%%%#%###%####*#############%%%%%@@@%%#%%####%#%%%%@@@@@%@@@@@@@@@@@@@@@@@%@@@@%%%%###%##%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@
****###%%###########%###%##################%#####%######*#**#****############%%###%##%#%%%%%%%%%%#%#%%########*##*#*#*******#*****######%%%%%%%##*****#**###%%%%%%%@@#@%@@%@@%%%%%%%##*#%#####%###########%#%@%@@@%%%#%#%#%#%%%@%@@@@@@@@@@@%@@@@@@@%@%@@@@@@%%%##%#%#%%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**#####%%%%#%#%#%######%*##############%##%###%###%###*#********##**#####%%###%#######%%%%#%#%#%%%%%%%%#######%####*#*****+#****##########%%%%#####******####%%%%%@@%@@@%%@@@%@%%#%#%#%##########*######%%#@%@@%%%@#%%%%##%%%%%%%@@%@@@@@@@@@@@@@@@@@%@@@@%@@%%%%#####%#%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*#*###%%%#%##%#%#####%##################################*#******##**##%*%###%#%##%#%%###%#%#%%#%#%%%%%#%##########*#****#***********####%%%%%%%%##******#*#%#%%@%%%%@@%%%@%%@@%@%%#%%#%%%###*#############%%%%%@%%%%%%%%%%#%%%@%%@@%@@%@%@@@@@@@@@@@@@@@@@@@%%%#%####%#%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*#*###%##%%#%##%####%#########%#########%%#######%######*#****##**#######%####%%#%%##%#%#%%%%%%%%#%%%%########*###*#*#*******#***#**####%%#%%%%##*#*****##*%%%@%@%%@@@@%@%%@%%%@%%%%####################%%#@@@@@@@@@%%%%%%%@%%%@@%@@@@@@@@@%@@@@@@@@@@@@@@@@@%%@#####%#%@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@
**#*##%#%%%%###%##################%##############*####*##****#***#*#########%#%####%%#%%#%##%%%%%%#%%%#%%#######*#***************#######%%%%%%#####*#*#####%%@%%%%@%%%%@%@@@@%@@%%%%%%%%################%%%#%%%@@@%@@%%%#%%%%@@%@%@%%%@@@@@@@@@@@@@@@@@@@@@@@%%%%%%##%%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@
****##%%#####%##%%###%###########%##%#######%#########*#**********#########%##%###%%#%#%#%%%%%%%%%%%%#%###########***************#######%%%%%####******#####%%@@@%@%%@@%%%@%@@%@%%%%#####################%%%%%%@%%@@%%%@@%%%@%%@@@@@@@@@@@@@@@@%@@@@@%@@@@@@@@%%%###%%%#%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@
***#####%%#%%##%%#######################################**#*******#########*########%#%%%#%#%#%#%#%%#%#%########*****************######%#%%%%%%##########%%%%%%%%%%@@%%@%@@@%@@%@%%%%%%#%############*###%#%%%@%@@@@%%%%%@%@@@@%@@@@@@@@@@@@@@@@%@%@@@@@@@@@@@@%#%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@%@
**#####%%%#%#%%########################%#%#####%#########******#*###*############%###%##%%%%%%%#%#%%%%############***************#######%%%%%%%%########%##%%@@%@@@%@%@@@%@%@@%%%%%%%%%##%##############%%%%@%%@@@@%@@%%%@@%@%@@@@@%@@%@@@@%@@@@@@@@@@@@@@@@@%@%%%##%%%%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@%@@
*#***#####%%###%##*#%#%%#%#######%#%###*#*%#%##########****#**#*****##########*####%#%%##%%%##%%%%%@##%#########*#*#****+**+***#*######%#%@%@%%###########%%%%@%%%@@%@%@%@@@@@%@@@@%%%#%#%######*###*#####%%%@@%@@@@@@%@@@@@@@%@@@@%%@@@@@@@@@@@@%@@@@@@@@@@@@%%#%%%#%%@%@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@%@@
***#*#%#%%##%###################################%########**#*#*####*##############%#%%##@%%%%%%%%#%%%%%##########******+*****+***#####%@%%%%%%%#%%######%%%%@%%%@%@@%@@%@@%%@@%@@%@@@%%###%##*##**########%%@%%@@@%@%@@@@%@%%@@%@%@%@@@@@@@@@@@@@@@@@@@%@@@@@@%%%##%%#%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
****####%%#%%#%%#%##########%#############%#%############***#*#**##%#*%############%%###%###%%%%%%%%%%%%#####***#*****+*+*+*****#####%%%%%%%%%%##%#%#%##%%%%@@%%@%@@%@%@%%%%%%@%@@%%%%%%#######**#########%%%%%@@%@@@@@@%@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@%%%%%%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*#**#####%%###%###%######################*%*#####%######**##*****#**#########%#####%##%##%%#%%%%%%%%%%%######*#*****++***+*****#*#####%%@%%%%%%%%%#%##%%%%%@@%@%@@%@@%%@@@@@@%%@%%@@%%%#%#####***#*######%%%%@%@%@@@@@@@@%@@%@@%@%@@@@@@@@@%@%@@@@@@@@@@@@@%@@@#%%%#%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%
*****##%%#%###%#########%#######################%######*#**#****###############%#%##%##%%%%##%%%%#%#%#########***+**+**++******#####%%%%%%%@%%%%%%%%%%%#%%%%%@%%%@@%%@@@%@%@@@%%%%@@%%%%%%#%###*#***####%#%%%%@@@@@@@%@@@@@@@@@@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@%#%%%%%%%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@
**+***##%##%%%#############*##########*######%#######%#*#******##*#############%#%#%%#%%#%#@%%#%%%#@%%%####*#******+++++++******####%%#%%%@%%%@%%%%%%%%%%%%%@%@@%%@@@@%@@%@%%@%@%@@@@@%%%##%*##*#########%%%%%%%@%@@%@%@@@@@@@@%@@@@@@@@@%@@@@@@@@%@@@%@@@@@@%%%%%%%@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%@@
*****#####%#####%##%##################*##########%#####**#*******################%#%#%#%%%%%%%%%%#%#%%######*****++*++++++*****###%#%%%%%%%%%%%%%%%%%%%%%@@%@@%%@@@%@%@@%@@@%@@@@%%@@@@%%#%#####*##*#######%%%%@%@@@@%@@@@@@@@@@%@@@@%@@@@%@@%@%@@@@@@@@@@@@@%%%%%%%@%@%@@@@@@@@@@@@@@%@@@%@@@@@@@@@@@@@@@@@
*****##%#%#%#%%##%#####*####**#########################*#******##*##*#######%###%####%%%#%%%%%%%%%%#%%#%######***++*+++*++****###%%%%%%%%%%@%@%%%%@@%@%@%%%@%%@@%@%%@@@%%@@%@@@@@@%@@@%%%%#####*#*######%%%%%%@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@%%@%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@
******#####%###%*####%#%##*##**####%########*####%#######***#*#*##############%%##%%#%%%#%%%%#%%%#%#%%%%####*******+++++******###%%%%%%%%%%%%%%%%@%%%%%%%@%%%@%%%@@@%@@%@@@@@@@@@@%@%@%%%%####*#*#***#####%%%@%@%@@@@@%%@@@@@@@@%@%@@@@%@%@@@@%@@@@@@@@@@@@@%%%%%%@%%@@@@@@@@@@%@@@@@@@@@@@@%@@@@@@@@@@@%@@@
*++***######%#############*#%###########################*#*******############%#%####%%%%%#%#%%%#%%%%%%%#####****+++++++++***####%%%%%%%%%%%%%%@%%%%%%@@%@@@%@@@%@%@@%@%%@%@@%@@@@%@@@%@%%%###*#*#***####%%%%%@@@@@@@%@@@@@%@@@@@@@@@@%@@@@%@@@@@@@@@@@@@@@%%@%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
******###%#%######%######*#*****#*####################**##*****#*#########%%##%##%#%%%#%#%#%%#%%%%%%#%%%##***+**++++++++****#*##%#%%%%%%%%%@%%%%@@%%%%%%%%@@@%%@@@%@@%@%@%@%@@%@@%@%@@@%%%####**#****###%%##%%@%@@@%@@%@@@%@@@@@@@@@@@%@@@@@@@@@@@@@%@@%@@@@@@%%@%@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@%%@
+**+**###%########*#%*########*###########*#*####%######*#*#**#****###%##%%#######%#%#%%%%#%#%%%%%%###%###*****++++++*++**#######%@#%%%%%%%%%%@%%%%@@%@%@@@@%@@@%%@@@%@%@@%@@@@%@@@@@%@%#######**#**###%%#%@@%@@@%@@@%@@@@@%@@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@%@@%%%%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@
+++**###%#%#%##%##%#########**###*#*###*########%#%######*****#***#######%#%######%%####%#%%%%#%#%%%%%%###***++*+++*++****#####%%%@%%%%@%%%%%%@%%%%%%%@%@%@%@%%@@@@%@@@@@@@@@@%@@@%@%%@@%#####*******##%#%%%%%@@@%@%@@@@%@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
++****##%#%%#%######*####%*##***#**############%######%#**#**#+#**####%###%####%##%%#%#%%##%%%#@#%#%%%*##***+*++*+*+*****#*###%%%%%%%%%#%@@@%@%%%@@%%@%@%@%@%%@%@@@%@@%@%%%@@%@@@@%@@@@%%%####**#**###%#%#%@@@%%@@@@@@@@%@@%@%@@@@@@@%@@@@@@@%@@@@@@@%@@%@%@@@@@%%@@@@@@@@@@@%@@%@@@@@@@@@@@@@@@@@@@@@@@@%@@
+++***###%###%#%########*#*#####*#################%#%#*%*##***#*#######%#######%####%#%%%%%%#%%%%%#####*******++*++*****#*##%%%%%%%%%%%%%%%%%@%%@@@%@@@%@%@@%@@@@%@@@@@%@@@@@@@%@@@@@%@%%####***+***####%%%@@%@@@@%@@%@@@%@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++*+*####%################*#*####*#*###*###############**##***#*#######%#####%#%%###%%%#%%#%#%%%######*#********+***+**####%#%%#%%@%%@%%%@@%@%@@%%%@%@%@@%@%@@@@%@%@%@%%%@@@@%@@@@%%@@@%%###**#*****####%%%%@%@%%@@@@@@@@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@%%@@@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@
++++**###%###########*#####*##**###%#######*#####%########**#*#**##########%%#%####%%#%%###@%%%#####********++*****#***#####%%%%@%@%%%%%@%%%%%%@%@%%@%@%%%@@%@%@@@@@@%@%@@@@%@%@@@@@@%@%%%#*##****#*###%%%%@@@%@@@%@@@@@@@@%@@@@%%@%@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++++***######%#%########*####*###########################*#****#*#*#####%##%#####%###%%%%#%%%%#####**#*****+*********###%#%%%%%%%%%%%%%%%%%%%@@%%@%%%@@@@@@@@@@@@%@@%@@%@@@@@@@@@@%%%@%%#%##*******#*#%%%%@%%@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%@@%@@
+++++*#########%############*############*%######%#########*#**##########%###%##%#%%%###%%%%##%###****#*+**********#####%##%%%%%@%%%@%@@@@%@@%@%%%@%%@%%%@%%@@@%@%@@@@@@@%@@@%@@%@%@%%%%%####*****#*###%%%@%@@@%@%@%@@%@@@@@@@%@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++++***###################**#*#*###%%######################****#*######%######%##%#%%#%%#%%%#%#####***#**********####%%%#%%%%%%%%%%@%@%%@%%@%%%@@@%@%@%@%%@@%@@%@@@@@%@@@@@%@@@%%@%%%%%%####*****######%%@@@%%%@@@@@%%@@@%@%@@@@@@%@@@@@@@@@@@@@@@@@@@@@%@@@@@@%%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@
++++**###%###%####%#########%######*#######%#############*#*#**#*#*#*########%%##%###%%%%%%#%#%#####*#*********#*####%%%%%#%%%@%%%@%%%@%%@@@@%@@%@@@%%%%@@@@@@@%@@@@@@@%%%@@@%@@%%%%%%%####********###%@#@%@@@%@@@%@@@@@@@@@@@@@%@@@@@@@@@@@@%@%@@%@@@@@@@@@@@%%%@%%%@@@%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@
+++++**###%#%############**#*############%#######%%#####*#*****####*####%##%#####%#%##%%#%#@########***********##*#%%%%%#%%%%@%%%@%%%%%@@%%%%@@%@%@@%@@@@%@@%%@@@%@@%%@@@@@@@@%%%%%%%%####********####%%%%%%@@%@%@@@@%@@@@%@@@@%@%@@@@%@@@@@@@@@@%@@@%@@@@@%%#%%%%%%%@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@
+++***####%#%#######*######################################**#*###########%#%%#%%#%#%%#%%#%%%#%#######*#*****#######%%%%%%@%%%%@%%%%%%%%@@%@@%%%@%%@@%%@%@%@@%@@@@@@@@%@@@@@%%%%%%@%%%###*#******####%%%%@@@@@%@@%@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%%#%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
++*+**################*########*###########%#####%#######**#*#***%########%%#####%#%%%%%#%#%%##########*####**#####%%%%%@%%%%%%%%%%%@%@%%@%%@@%@%@%@%@%@%@@@@@%@@@%@@@@@@%@@%@@%%%%%%#%#*#**#****#####%%%@%@@@@@%%@%@%@@%@@@@@@%%@@@@@@@@@%%@@@@%@@@@@@%@%@%%#%%#%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@
++++***##########%##################*##%#####%#%###%########*#**##**%#%#####%#%%%#%###%%%%%#%%##############*#####%#%%%%%%%%%%@%%%%@%%%%%@%@@@%@@@%@@%@@@@%%@@%@@@@@@@%@@@@@%@%%%%%%%###*#***#*######%%@@@%@@%%@@%@@@@@@@@@@@@@%@@@@@%@@@@@@@@@@@@@@@@@@%%%%%%%%###%%%@@%@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@
++++*######%##%%##########*###*###########################***####*######%##%%#%#%%####%%%#%#%#%#%##%#############%##%%%%%%@%%%%%%@%@@%@%%@@%@%@%%%%@%%@%@%@@@@@@@@@@%@@@@%@%@%@%%%%%%####*****####%#%%%@%@@%@@%@@@@%@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@%%%#%#######%%%%@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@%@@
+******#####%###*########*########*########################*#*+##########%#%#####%#%%%%#*%%##%%%%#%%##############%%%%%%%%%%%%%%%%@%%@%@%%@%%@@%@%@@@@%@%%@@%@@%@%@@@@@@@@@@@%%%%@%%%#%***#**#####%%%%%%%@@@@%@@@@@@%%%@@@@@@@@@@%%@@@@@@@@@@@@@@@%@@@%%##%#%########%%#@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+*++***###########%####*###########*####*#*#######%#####*#****###*#*#########%%#%#%#%#%%%%%#%%#%%%%#%##%%##########%%%%#%%%@%%%@%%@@%%@%@@@%%%@%@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@%%%%%%###*****####%%%%%@%@@@@@@@@@@@@@@@@@@@@@@%@@%%@@@@@@@%@@@@@@@%@@@@%#%%##########%%%%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@@%@@
+++****###%###############*###########*#*#*#########%###*##*##**#*###########%#%##%%%%%#%#%#%%%%@#%%%%%%###%######@#%%%%%%%%%%%@%%%%%@@%%%%@%%@%@%%@%@@@@%@@@@@%@@@@@@@%%@@%@@@%%@%###*####*#####%%%%@@@%%@@@@@@%@@@@@@@@@@%@%%%%%%@%@@@@@@@@@@@@@@@%@%%%##########%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@
******########%#####%###*##**#*#*####*#######*#####%#####*##*#*#*#########%##%*%#%###%%##%%%##%%#%%##%%%#######%#%#%%%%%%%%%@%%%%%@@%%%%@%%%%@%@@@%%@@%%@@@@@@@@%@%@@%@@@@@@@@@@%@%%#####*#####%%%%%%%@%%@@%@%@@@@%@@@@@@@@@%%@%#%%@@%%@@@@@@@@@@@@@@%%%%######*###%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
*****#################*###########*#**#*################**##***############%#%%#%#%%#%%%%%#@#%%%%%%%%%############%%%%%%%%%%%%%%%@%@%%@@%@%@@@%@%@%%@@@@@@@@@@@@@@@%@@@@@@@@%@%@%########*####%#%%%@@%%@%%@@@@@@@@@@@@@@@@@@@%%%%%%%%@%@%@@@@%@@@@@@@%%%#####*#####%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*+****###%################*###*#****#*##**##############*###*#*#*#######%#%####%%##%##%%%%%#%%#%%%#%%%%#%########%%%%%@%%%@%@%%%%%%@%@%%@%@%@%@%@@%@@%@@%@@@%@%@@@@%@@@@@@%@@@@@@%#%#####*####%%%@@%@@@@%%@@@@@@%@%@@@@@@@@%%%%%%##%%%@@@@@@%@@@@@@@@%%%%###*##*##%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
******####%#####%#######################*****###########***#*#*#**######%#####%###%#%###%##%%%%%#%%%%%%%##########%##%%%@%%@%%%@@%%%%@%@%@%%%@%@@%@@%@@%@@@@%@%@@@%@@@@@%@@@@@%%%##%#########%%%%@@@@@@%@@@@@@@%@@@@@@@@@%%%@%#%%%%%%%@@@@@@@@@@@@@@@%%%#########%%#%%%@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@%@@@@@
******########%########*#**####*###**#***###############*#***#*#######%###%%##%#%%####%#%%#%%%%%#%#%%#%%#%%######*%#%%%#@%%%%%@%@%%%%%%@%%%%@@%@@%%%@%@@@@%@@@@%@@@@@@@@@@@@%@@%%%%########%%%%%@@@%@%@@@%@@@@@@@@@%@@@@@@@%%%#%%%%%%@%@%@@@@@@@@@@@@%%############%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
*****#*##%%#################*#*#***##*##**#*##*#########*###**#*#*########%#%%####%#%##%%%##%##%%%%%%%%#%#######%%##%%%@%%%%%%@%%@%%%%%%@@@@%@%@@@%@@@@%%@%@%@@@@%@@%@@@%@@@@@@%%%#######%%%%@%@%%%@@@@%@@%@%@@@@@@%@%@@%%%%%#@%%%%%@%%@@@@@%@@@@@@@@@%%%#####*%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**#***############%##########*########*##*################**###*######%####%#%%#%##%%####%%#%%%%%#%%%%%%##########%%#%%@%%%@%%@%%%%%@%@%%%@%@%@%%@@@@@@@@@@@@@@@@@@@@@%@@@@@@@%%%%%#######%%@@@%@@@@%@@@%@@@@@@@@@@@@@@@@%@%%%%#@%%%%%@@%%@@@@@@@@@@%@%%%%%##%#%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**#**##%###%###############**#****#***#*#**#*#*########*###*#*##*##*##*%#%*%###%%#%###%%%%#%##%%#%%#%@%#%########%#@%%%%%%%%%@%%%%%%@%%%@%@%@@@@@@%@@%@@@%@%@%%@@%@@@@%@@@@@@@%%%%%####%#%%%@@@@%@@@@@@@@@@%@@@%@@@%@@@@@@%%%%%%%%%%@%@@%@@@@%@@@@@@%%%%#%#%%%%%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@@
*#***###%#%######*#########*########*######*%##*############*#*#*###*#%*%##%##%%###%#%#%%%%#%%#%%%%%%###%####*####%%%#%%%@%@%@%%%%%%@%%%%@%@%@%%@@@@%@%%@@@@@@@@%@@@@@@%@%@@@@%@%%%%##%%#%%%@@@@@@@@@@%%@@@@%@@@@@@%@%@@@@%%%#%%%%%%%@%%@@@@@@@@@@%%@@%%%%%#%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
**##*###############*##*##*##*###**#*##*####*#############******#########%#%#####%##%%#%##%#%%#%#%%%%###%*#####%##%%%%%%%%%%%%%%@%%%%%%%%@@@%@@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@%%%%###%#%%%%%%@%@@@@@@@@@@@@@@@@@@%@@@@@@@@%%%#%#%%%@@@%@@@@@@@@@@@@@@%%%%%%%%@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
####**#%##%%%#####*#*#############*###*****##*#*########**#*##**#*#*#*%###%*#%####%#%#######%#%#%%%%####*#**#*####%#%%@%#%%%%@%@%@%%%@%@@@@%@%%%%@@@@%%@@@@%@@@@@@@@@%%@@@@@@@@@@%%%%#%%%%%@%@@%@@@@@@@@%@@@@@@@%@@@@@@@%@%%#%#%%%%%%%@@@@@@@@@@@@@@%@@%%%@@%%%%@@@@@@@@@@%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
####*##%#%###########%#########*#**##**#*#*#####*%#%##*##***#**###*##########%%####%###%#%%%##%%%#%#####**##*#####%%%%%%@%@%%%%%%%@%@%@%@@%%@@%@@@@@@@%@@@@%%@@@@@%@%@@@@@@@@@@%%%%%%%%%@%%@%@@@@@@@@%@@@%@%@@@@@@@@%@@@#@####%###%%%@@@@@@@@@@@@@%@@%%@%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
##*##*##%#%#######*#####*##**####*#**########################*#######*############%###%#%##%%##%#%#####*#****######%%@%%@@%%%%@%%%%@%%%@#%%@@%@%@%@%%@@@@@@%@%@@@@@@@@@@@@@@@%@%%#%%#%%%%%%@%@@@@%@@@@%@@@@@@@@@@@@@@@@@%%#######%#%%%%@@@@@@@@@%@@@@@@%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
###*#####%########%*#########**#*#*##**########*####*###**#**#*#*##########*###%###%%#%#%%##%%###%#####**#***#*######%%%%%%%%%%@@%%%@%@@@%@%%@@@%%%@@@@@%%@@@@@@%%@@%@@@@@@@@@@@@%@@%%%%@%%@@@%@@@@%@@@%@%@@@@@@@@%%@@#%%##%#########%%%%@@@@@%@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@%@@@@@@@@@@@@@@@@@@@
###########%#########################*##*##########%##*###*****#######*######%##%###%%####%#%%%#%%####******##*####%%%%%%%%%@%%%%%@%%%%@@%%%%@%@%@@@%@@@@@@%@%@%@@%@%@@@%@@@%@%@@%@%%%%%%@%@@@@@@@@@@%@@@@@%@@@@@@@@@@%#@####*#*#####%%%@@@%@@@@%@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
##############################**#*##*#**#*##**#*#%#####**#***###*#####%###############%%%%%####%%%####******+##*###%%%%%%@%%%@%%@@%%@%%%@%@%@%%@%@@%@%@@@@@%@@@%@@@@@@@@@@@%@@@@@%@%%%@%@@%@%@@@@%@@@@@@@@%@@@@@@@@@@%%%#*#####*####*@%@@%@@@@@@@@@@%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
########%##%##############*#**####****#*##*##*########*##*#*#**##*########%##%##%##%#######%###%%%##*#**+*****#*##%#%%%%%%@%%%@%%%@%@%@%@@%%@@@@@%%%@%@@@@%@@@@%%@@%@@@@@@@@@@@@@%%@@%%@@@@@@@@%@@@@@@@@%%@@@@@@%%@@%%%%*%##*#**#####%#%%%@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@%@
#########%%#%%############*#####*####*##*###############*#****#*#*######*%####%####%##%%#%##%%%%####***********###%##@%%%%%%%%%%%%%%%@%%%%@%%@@%%@@@%@@%@@@@@@@@@%@@%@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@@%@@@@@@@@@@@@@@%%%####*****##*##%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
##################*##%*###*#*#######*##*#***#######*###*#**##*##*####*#######%##*#%%#%%#%###%#%#####*#*********####%%%#%%%%@@@#%%%%%@%@@%%%@@@%@%@@@@@%@@@@@@@@@@@@@@@@@%@%@@@@@@%@@@%@@@@@@@@@%@@%%@@%@@%@@@@@@@@@@%%%%##%#*****#####%@%%%@@%@@@@@@@@@@@@%@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@%@@@
#############%###########*#########*#****#**####*#######*#**#**##*#################%###%##%%%%##%###****+++***#*###%%%%%%%@%%%%@%%%@@%%@%@%%@%@@@%%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@%@%@@@@@@@@@@%@@@@@@@@@%@@@@@@@@@@%%%#%##*#*****#####%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#####%###%##########*###########****#*##*#**#*###########*#***##*#*#######%###%##%%%#%#####%#%%%####**++***++*+*######%%%%%%%@%%%%%%%@%@%@@%@%%@@@%@@@%@%%@@%@@@@@@@@@@%@%@@@@@@@@@@@@@@%@%@@@@@@@%@@@@@@@@%@@@@@@@@%%%%####**#**######%@%@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@
###*######################*#*#*#**#*#**##*##*#*###%###*#*#*#**######################%#%%##%###%%####****++++***#*###%%#%%%#@%%@%%%%@%%@@%%@%%%@@@@%@%@@@@@@@@@@@@@@@@@%@@@%@%@@@@@@@@@@@@@@@%@%@@@@@@@@@@%@@@@@@@%@@%%#%###*******###@%%%@@@@@@@@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
##*########%########*#*######*##*##**#*##*##*##########*##**#*#**##############%#####*##%####%%###****+++++++***####%%%%%%%%%%%%%%%%%@%%@@%@%@%%%@%%@@@@%@@@%@@@@@@@@@@%@@@@@@@@@@@@%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%##*###*###%##%@@@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@
##########%###############*#****#**#*###*#*##*#########*##*****#*#**#########%########%##%#%##%####***+++++++***###%%#%%%%%%%%%%%%@%%%%@%%%%@%@%@@@@%@%%@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@%%@@@@@%@@@@@@@@@@%@@@@@@%@%#%#%#%*#*#%#%#%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%@@@@@@@@
##############%###########*##**#****#*##**#**##*###########**##*#*####%###########%%#%%#######%###*#+**+*++++***####%%%#%@%%%%%%%%%@@%%%%@%%%@%@%@%%@@@%@%@%@@@@%@%@@@@@@@@@@@@@@@%@@@@@%@@@@@@@%@@@@@@@@@@@@@@@@@@@@%@%%%%########%%%@@@%@@@@@@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
###########################******************#**###########***#*#########################%########****+++++++****###%%%%%%%%%%%%%%%%%%%%%%%%%%@%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%####%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@